我在用webview播放音频的时候,可以听到声音,却不能控制播放事件,试了好几台机器都是这样。下面是我的测试代码:
audio tag test#btn {
width: 200px;
height: 50px;
background: #1170C5;
border-radius: 25px;
color: #FFF;
text-align: center;
line-height: 50px;
}
$(function(){
var audio = $('#voice')[0];
var mess = $('#message');
var startTime = Date.now();
var btn = document.getElementById('btn');
audio.oncanplay = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':文件就绪可以开始播放!(oncanplay)';
mess.append(htmltext);
}
$('#btn').click(function(){
audio.play();
});
audio.onended = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':音频已到达结尾!(onended)';
mess.append(htmltext);
}
audio.onerror = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':音频加载期间发生错误!(onerror)';
mess.append(htmltext);
}
audio.onloadeddata = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':音频数据已加载!(onloadeddata)';
mess.append(htmltext);
}
audio.onloadedmetadata = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':音频元数据已加载!(onloadedmetadata)';
mess.append(htmltext);
}
audio.onloadstart = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':音频文件开始加载但未实际加载任何数据!(onloadstart)';
mess.append(htmltext);
}
audio.onplay = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':音频已就绪可以开始播放!(onplay)';
mess.append(htmltext);
}
audio.onplaying = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':音频已开始播放!(onplaying)';
mess.append(htmltext);
}
audio.onprogress = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+':浏览器正在获取音频数据!(onprogress)';
mess.append(htmltext);
}
audio.onseeking = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+': seeking 属性设置为 true!(onseeking)';
mess.append(htmltext);
}
audio.onstalled = function(){
var time = Date.now() - startTime;
var htmltext = '
'+time+': 浏览器未能取回媒介数据!(onstalled)';
mess.append(htmltext);
}
});
在真机测试的时候,页面上没有跟踪到任何事件调用记录。请问需要对webview做什么设置,才能捕获音频播放事件呢?