2

我有一个带有两个源的音频对象,M4A 和 OGG 格式。

代码如下:

<audio id="audio1" controls="controls" preload="none">
<source src="music.m4a" />
<source src="music.ogg" />
</audio>

然后我可以调用 document.getElementById('audio1').play() 并开始播放。

它适用于所有浏览器。但在 Safari 中,它仅在 M4A 文件是第一个源时才有效。

即,如果我首先使用带有 OGG 文件的代码:

<audio id="audio1" controls="controls" preload="none">
<source src="music.ogg" />
<source src="music.m4a" />
</audio>

Safari 不会对 play() JavaScript 调用做出反应,只会对鼠标单击播放按钮做出反应。

除了始终将 M4A 文件放在首位之外,还有什么解决方案吗?

谢谢!

4

2 回答 2

1

您是否尝试过告诉浏览器您正在使用什么 MIME 类型。

使用“audio/mp4”作为 MIME 类型(不要忘记将其添加到您的 .htaccess 中)

<audio id="audio1" controls="controls" preload="none">
<source src="music.oga" type="audio/ogg" />
<source src="music.m4a" type="audio/mp4" />
</audio>
于 2011-05-30T00:09:42.217 回答
0

也许先尝试添加一个 EMPTY.m4a 文件?0.5 秒无噪音?我自己在 safari 上遇到了 .ogg 的问题。我从没想过要尝试另一种类型的文件 1st。这可能会解决我的问题。谢谢。我的问题是 .mps 文件中的空白。所以我切换到.ogg。添加默认空白 .m4a 可能会帮助您解决问题。我很想知道这是否有效,无论哪种方式都可以发布。

于 2016-02-21T05:04:23.180 回答