繁体   English   中英

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

[英]TypeError: undefined' is not a function (evaluating 'myAudio.play()')"

音频文件无法在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中只有一个音频标签。

我在Windows PC上也遇到类似的问题。

因此,为了进行测试,我创建了一个带有一个红色大点的简单HTML文件,然后单击该文件将播放音频。 它可用于所有HTML5兼容的浏览器(野生动物园除外)。 我花了整整一天的时间,尝试了100多种不同的解决方案,使其能够在Safari中使用,但是没有运气。

最后,我安装了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>

这可能不是一个完美的解决方案。 但这对我有用。

它永远不会在Windows Safari上运行,因为最新的Windows Safari于2010年发布。这就是HTML5: <audio><video>标记在Windows Safari中不起作用的原因。 测试自己

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM