我目前正在从事一个HTML5项目。
在Android本机浏览器中,在同一页面中多次播放同一音频文件时存在问题。此问题在 Android ICS 4.0.4 版本上特别明显。在此版本中,音频将播放一次,但再次启动时,音频将不会播放。同样的事情在Android ICS 4.0.3版本和较新的4.1.1版本中完美运行。
测试设备:<br>三星Galaxy Tab(Android4.0.4):第一次播放时不播放<br>HTC One(Android四点0.4)>第一次播放后不播放<br>索尼Tab(Android四点零.3)<完美,多次播放音频<br>三星Nexus手机,多次播放音频
根据互联网上的一些研究,这似乎是Android版本4.0.4的一个问题
请帮助我找到一些解决方案,使其在所有设备上工作。
请使用此 W3 学校 HTML5 音频链接进行试用
我有一个有效的解决方案。.
问题是在Android 4.0.4浏览器中,当音频播放一次(结束)时,搜索时间将不会重置为开始位置,而是停留在结束位置。因此,通过设置currentTime=0,音频结束后会将其重置为起始位置,这样我们就可以在不刷新任何页面的情况下播放相同的音频
经过测试,可在所有设备上完美运行。
代码:
<audio id="movie_audio">
<source src="my_audio_location/movie_audio.mp3" type='audio/mpeg; codecs="mp3"' />
<source src="my_audio_location/movie_audio.ogg" type='audio/ogg; codecs="vorbis"' />
</audio>
JavaScript代码:
var movie_audio = document.getElementById('movie_audio');
movie_audio.addEventListener('ended', function(){
movie_audio.currentTime = 0;
}
这对我有用:
var movie_audio = document.getElementById('movie_audio');
movie_audio.addEventListener('ended', function(){
movie_audio.load();
});
如果上面的解决方案对你不起作用,试试这个。
audio_element.addEventListener('timeupdate', function() {
if (audio_element.currentTime >= ( audio_element.duration - 0.3 ) ) {
audio_element.currentTime = 0;
audio_element.pause();
}
}, false);
注意:我们将搜索栏设置为音频结束前的起始位置。