带.play()的动态声音文件

时间:2013-05-12 19:10:30

标签: javascript jquery audio

我正在创建的代码是一个函数,它应该具有函数.play()它...这里是代码

function playSound() {
document.getElementById('newMessage').play();
}

var sound = document.createElement('audio');
 sound.setAttribute("src","http://www.soundjay.com/button/beep-2.wav");
 sound.id="newMessage";
 sound.setAttribute('autoplay','false');
 document.body.appendChild(sound);

虽然每次在控制台中尝试playSound();时都会说playSound未定义。那么我尝试document.getElementById('newMessage').play();并且它也不会播放,也不会播放$('#newMessage')。play();带有对象错误的对象[object Object]没有方法播放。

任何建议,因为这是第一次尝试动态创建音频文件并使用函数来播放它。我已经看过其他一些SO主题了,他们似乎并没有引导我朝着正确的方向前进。感谢

1 个答案:

答案 0 :(得分:1)

我的猜测是,您已经在页面加载后定义了playSound方法,可能采用了某种onload方法。如果是这种情况,请尝试将方法附加到window对象:

window.playSound = function() {
  document.getElementById('newMessage').play();
} 

即使在页面加载后定义了该功能,也可以使该功能可用。此外,您不应将自动播放设置为false。它默认为false,如果要将其设置为true,则设置autoplay="autoplay"

JSFiddle