Android 4.0.4设备的原生浏览器无法多次播放HTML5音频

21

我目前正在开发一个HTML5项目。

在Android本地浏览器中,存在一个关于在同一页面中多次播放相同音频文件的问题。该问题仅出现在Android ICS 4.0.4版本上。在该版本中,音频将只播放一次,但是当再次启动时音频不会播放。在更新的4.1.1版本Android ICS 4.0.3版本上,相同的东西可以正常工作

测试设备:
三星Galaxy Tab(Android 4.0.4):仅播放第一次,然后不会播放
HTC One(Android 4.0.4):仅播放第一次,然后不会播放
索尼Tab(Android 4.0.3):完全正常,可以多次播放音频
HTC Sensation(Android 4.0.3):完全正常,可以多次播放音频
三星Nexus电话(Android 4.1.1):完全正常,可以多次播放音频

根据互联网上的一些研究,似乎是Android 4.0.4版本的问题

请帮忙找到一些解决方案,使其在所有设备上都能正常工作。

请使用此W3 Schools HTML5音频链接进行尝试


2
@Shurane,我已经添加了w3schools HTML5音频试用链接。希望它能帮助检查我提到的问题。 - Pintu Francis
1
@eric.itzhak 我试过那个链接,但它也无法回复。 - Muhammed Basil
@eric.itzhak,我也尝试在平板电脑(Android 4.0.4和4.0.3)上播放mediaelementjs,但在安装有Android 4.0.4的平板电脑上问题仍然存在。只有第一次播放音频。需要刷新页面才能重新播放。 - Pintu Francis
@muhammedbasil 我相信你可以使用mediaelementjs强制使用Flash回退,你可以尝试在发现有问题的版本中使用Flash(我假设Android支持Flash)。 - eric.itzhak
1
@eric.itzhak,目前ICS版本的Chrome已停止支持Flash。 - Pintu Francis
显示剩余5条评论
3个回答

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
这对我有效:

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

0
如果上述解决方案对您无效,请尝试这个。
audio_element.addEventListener('timeupdate', function() {
 if (audio_element.currentTime >= ( audio_element.duration - 0.3 ) ) {
  audio_element.currentTime = 0;
  audio_element.pause();
 }
}, false);  

注意:我们在音频结束之前将滑动条设置为起始位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接