TypeError:undefined'不是函数(评估'myAudio.play()')“

时间:2013-10-14 18:21:28

标签: javascript html5 audio safari

音频文件无法在Safari中播放.. 它给出了错误。

TypeError: 'undefined' is not a function (evaluating 'myAudio.play()')

这是我的HTML代码。

<audio>
  <source src="audio/horse.ogg" type="audio/ogg">
  <source src="audio/horse.mp3" type="audio/mpeg">
  Your browser does not support the audio element.
</audio>    

这是我的JavaScript代码

myAudio = document.getElementsByTagName('audio')[0];
if (typeof myAudio.loop == 'boolean'){
  myAudio.loop = true;
}
else{
  myAudio.addEventListener('ended', function() {
  this.currentTime = 0;
  this.play();
   }, false);
}   
myAudio.play();

我只有一个HTML音频标签。

2 个答案:

答案 0 :(得分:1)

我的Windows PC上有类似的问题。

因此,为了测试,我创建了一个简单的HTML文件,其中包含一个红色的大点,然后单击它可以播放音频。它适用于所有HTML5兼容的浏览器,除了Safari之外。我花了一整天的时间尝试了100多个不同的解决方案,让它在野生动物园上工作,但没有运气。

最后,我安装了QuickTime(最新版本),它解决了50%的问题。

休息50%的问题是代码结构。

<audio id="audio1" src="audio/guestProfile.ogg" type="audio/ogg" ></audio>
<audio id="audio1" src="audio/guestProfile.mp3" type="audio/mpeg"  ></audio>

它不喜欢上面的代码。所以我不得不把它改成以下:

<audio id="audio1">
    <source src="audio/guestProfile.ogg" type="audio/ogg">
    <source src="audio/guestProfile.mp3" type="audio/mpeg">
    Your browser does not support the audio tag.
</audio>

这可能不是整洁的&amp;完美解决方案但它对我有用。

答案 1 :(得分:1)

它永远不会在Windows Safari上运行,因为最后一个Safari for Windows是在2010年发布的。这就是为什么HTML5:<audio><video>标签在Windows Safari中不起作用的原因。 Test yourself