HTML5音频在Android 4.0.4设备Native Browser中无法多次播放

时间:2012-12-05 05:14:11

标签: android html5 html5-audio android-browser

我目前正在开展 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的问题

请帮助我找到一些解决方案,使其适用于所有设备。

Please use this W3 Schools HTML5 audio link for try outs

3 个答案:

答案 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);  

注意:我们将搜索栏设置为音频结束前的起始位置。