我目前正在开展 HTML5 项目。
在 Android原生浏览器的同一页面中,多次播放相同的音频文件存在问题。该问题在 Android ICS 4.0.4 版本中特别注意。在此版本中,音频将播放一次,但当再次启动时,将无法播放音频。同样的事情是在Android ICS 4.0.3 版本以及较新的 4.1.1 版本中完美运行。
经测试的设备:
三星Galaxy Tab(Android 4.0.4):第一次播放时它才播放
HTC One(Android 4.0.4):第一次播放时它才播放
Sony Tab(Android 4.0.3):非常精细,多次播放音频
HTC Sensation(Android 4.0.3):非常精细,多次播放音频
三星Nexus手机(Android 4.1.1):非常精细,多次播放音频
基于对互联网的一些研究,它似乎是Android版4.0.4的问题
请帮助我找到一些解决方案,使其适用于所有设备。
答案 0 :(得分:6)
我得到了一个有效的解决方案..
问题出现在Android 4.0.4浏览器中,当音频播放一次(结束)然后搜索时间不会重置到起始位置时,它将保持在结束本身。
因此,在音频结束之后设置 currentTime = 0 会将其重置为起始位置,这样我们就可以根据需要多次播放相同的音频刷新。
经测试可在所有设备中完美运行。
HTML代码:
<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;
}
答案 1 :(得分:1)
这对我有用:
var movie_audio = document.getElementById('movie_audio');
movie_audio.addEventListener('ended', function(){
movie_audio.load();
});
答案 2 :(得分:0)
如果上述解决方案对您不起作用,请尝试使用此方法。
audio_element.addEventListener('timeupdate', function() {
if (audio_element.currentTime >= ( audio_element.duration - 0.3 ) ) {
audio_element.currentTime = 0;
audio_element.pause();
}
}, false);
注意:我们将搜索栏设置为音频结束前的起始位置。