1

我正在创建的代码是一个函数,它应该使用 .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 Object] has no method play 的错误。

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

4

1 回答 1

1

我的猜测是您在playSound页面加载后定义方法,也许是在某种onload方法中。如果是这种情况,请尝试将方法附加到window对象:

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

即使该功能是在页面加载后定义的,这也会使该功能可用。此外,您不应将自动播放设置为 false。它默认为 false,如果您想将其设置为 true,请设置autoplay="autoplay".

JSFiddle

于 2013-05-12T19:49:38.857 回答