手机系统是android4.03,在webview中监听音频播放结束事件时,遇到一个隐蔽的bug,代码示例如下:
var mess = $('#message'),
startTime = Date.now(),
i = 0;
$('audio').on('ended',function(){
var time = Date.now() - startTime;
var htmltext = '<br>'+time+':音频已到达结尾!(onended)'+i;
i++;
mess.append(htmltext);
});
$('#btn').on('click', function(){
var audio = $('#voice')[0];
audio.pause();
audio.currentTime = 0;
});
具体来说,就是在音频播放至结尾,触发一次‘ended’事件后,点击按钮暂停播放,并将currentTime属性归零,会额外触发一次‘ended’监听事件。
暂时只在联想 A698t上发现这个问题,只好在调用暂停播放前,再检查一次音频播放状态了。