解决方案:原生代码调用html5中的js方法,在js方法中暂停声音的播放与开始,
具体实现如下:
html5中定义代码
/*设置音乐*/
var volum = document.getElementById('volum'),
audio = document.getElementById('audio');
if (navigator.userAgent.match('iPhone|iPad|iPod')) {
var deviceApi = { //原生的回调方法 播放和暂停
onStop: function() {
volum.setAttribute('class','vloume_btn active');
!audio.paused && audio.pause()
// log('onStop回调执行,音乐停止播放')
},
onResume: function() {
// log('onResume回调执行,音乐开始播放')
audio.paused && audio.play()
},
backToApp: function(){
volum.setAttribute('class','vloume_btn');
audio.pause();
window.deviceInvoker('deviceApi' , 'goBack')
}
}
}else {
var deviceApia = { //原生的回调方法 播放和暂停
onStop: function() {
volum.setAttribute('class','vloume_btn active');
!audio.paused && audio.pause()
// log('onStop回调执行,音乐停止播放')
},
onResume: function() {
// log('onResume回调执行,音乐开始播放')
audio.paused && audio.play()
},
backToApp: function(){
volum.setAttribute('class','vloume_btn');
audio.pause();
window.deviceInvoker('deviceApi' , 'goBack')
}
}
}
volum.onclick=function(){
var clsvolum = volum.getAttribute('class');
if(clsvolum == 'vloume_btn') {
volum.setAttribute('class','vloume_btn active');
// 关闭声音音乐
audio.pause()
window.deviceApi.onStop()
} else {
volum.setAttribute('class','vloume_btn');
// 声音打开
audio.play();
window.deviceApi.onResume()
}
}
Android中在对应的Activity里边添加代码
@Override
protected void onResume() {
super.onResume();
if (mWebView != null) {
mWebView.onResume();
mWebView.loadUrl("javascript:window.deviceApia.onResume()");
}
// LogUtils.i(TAG, "onResume()");
}
@Override
protected void onStop() {
super.onStop();
if (mWebView != null) {
mWebView.loadUrl("javascript:window.deviceApia.onStop()");
}
// LogUtils.i(TAG, "onStop()");
}
网友评论