1

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

4

2 回答 2

1

我在我的 Windows 电脑上遇到了类似的问题。

因此,为了进行测试,我创建了一个带有一个红色大点的简单 HTML 文件,然后单击它会播放音频。它适用于所有兼容 HTML5 的浏览器,除了 safari。我花了一整天的时间尝试了 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>

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

于 2013-11-03T23:13:47.493 回答
1

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

于 2017-07-19T14:51:38.697 回答