我有一个关于 <audio> 标签和 FF/Chromium 的烦人问题,因为媒体不会在我期望的时候播放。Opera 似乎可以正确处理它。
我们有音频媒体可以使用相应的 HTML5 <audio> 标签来播放。<source> 标签在纯音频 OGG 容器中包含媒体。但是,文件扩展名 ogg不在src -attribute 中,因此src -links看起来像http://localhost:1234/a/b/cdefg/Xyz(Restful API 使用重定向来获取实际的媒体文件)。
以下代码是应显示 HTML5 播放器的网页部分:
<div class="mainContent">
<audio id="aud1" height="360" width="640" autoplay="false" controls="controls" tabindex="0">
<source type="audio/ogg" src="http://localhost:1234/a/b/cdefg/Xyz"></source>
Your browser does not support HTML5.
</audio>
<div class="divider"></div>
<a class="homeLink" href="/index.html">Take me back to the Homepage</a>
</div>
正在播放的媒体绝对是纯音频 OGG 文件。
我在 Ubuntu 10.04 FF5.0、Chromium 12.0.742.91 (87961) 和 Opera 11.50 上测试了这段代码,结果如下:
- FF:不播放
- Chromium:不播放
- 歌剧:好的
我集成了一个小脚本来显示 HTMLMediaElement 的不同属性(属性:networkState、readyState,请参阅),产生以下结果:
- FF => networkState: NETWORK_LOADED (媒体源加载完毕), readyState: HAVE_NOTHING (没有可播放的媒体)
- Chromium => networkState:NETWORK_LOADED(媒体源加载完成),readyState:HAVE_NOTHING(没有可播放的媒体)
- Opera => networkState:NETWORK_IDLE,readyState:HAVE_ENOUGH_DATA
(请注意,不同状态的描述来自 Safari 开发网站:http: //developer.apple.com/library/safari/#documentation/AudioVideo/Reference/HTMLMediaElementClassReference/HTMLMediaElement/HTMLMediaElement.html)
如果我插入一个直接指向纯音频 OGG 文件的src (如http://en.wikipedia.org/wiki/File:Tromboon-sample.ogg),那么它会按预期工作。似乎 FF 和 Chromium 似乎在链接不包括最终文件名方面存在问题?
有没有人对此有任何想法或暗示?
干杯,克里斯