HTML5 音频未在 Android 4.0.4 设备本机浏览器中多次播放

Posted

技术标签:

【中文标题】HTML5 音频未在 Android 4.0.4 设备本机浏览器中多次播放【英文标题】:HTML5 audio not playing multiple times in Android 4.0.4 device Native Browser 【发布时间】:2012-11-22 21:28:56 【问题描述】:

我目前正在从事一个 HTML5 项目。

Android 原生浏览器的同一页面中多次播放同一音频文件存在问题。该问题在 Android ICS 4.0.4 版本上特别注意。在此版本中,音频将播放一次,但当再次启动时,音频将不会播放。同样的事情是在 Android ICS 4.0.3 版本和较新的 4.1.1 版本中完美运行。

经过测试的设备:Samsung Galaxy Tab (Android 4.0.4):第一次播放时才无法播放HTC One (Android 4.0.4) :第一次播放,然后不播放Sony Tab (Android 4.0.3):非常好,可以多次播放音频HTC Sensation ( Android 4.0.3):非常好,可以多次播放音频Samsung Nexus Phone (Android 4.1.1):非常好,可以多次播放音频

根据对 Internet 的一些研究,这似乎是 Android 4.0.4 版的问题

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

Please use this W3 Schools html5 audio link for try outs

【问题讨论】:

我的项目中遇到了同样的问题。 我也遇到了类似的问题,希望社区能提供帮助。 @Shurane 我添加了 w3schools HTML5 音频试用链接。我希望检查我提到的问题会有所帮助。 @eric.itzhak 我尝试了链接。但它也无法重播。 @eric.itzhak 并且 ICS 中的当前 chrome 已停止支持 Flash。 【参考方案1】:

我有一个可行的解决方案..

问题是在 android 4.0.4 浏览器中,当音频播放一次(结束)后,搜索时间不会重置到开始位置,它会一直停留在结束位置。 因此,通过在音频 ended 之后设置 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;  

【讨论】:

【参考方案2】:

这对我有用:

var movie_audio = document.getElementById('movie_audio');  
movie_audio.addEventListener('ended', function()  
   movie_audio.load(); 
);

【讨论】:

【参考方案3】:

如果上述解决方案不适合您,请尝试此解决方案。

audio_element.addEventListener('timeupdate', function() 
 if (audio_element.currentTime >= ( audio_element.duration - 0.3 ) ) 
  audio_element.currentTime = 0;
  audio_element.pause();
 
, false);  

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

【讨论】:

以上是关于HTML5 音频未在 Android 4.0.4 设备本机浏览器中多次播放的主要内容,如果未能解决你的问题,请参考以下文章