概述
這裡記錄一個問題,比較小。由于新app中有音頻直播和點播功能,但是頁面确實用H5做的,音頻的播放也是。這就涉及到java和js的互動,在這其中java調用js的過程中有需要注意的地方(涉及到音頻播放的時候)。
問題
webview中播放音頻,點選home鍵,音頻會停止播放。這時候想要音頻繼續播放需要監聽Activity的onStop回調方法并調用js,使音頻繼續在背景播放。
這時候如果利用如下代碼會有問題(測試手機都是6.0系統的)。
private void continuePlay() {
if (webView != null){
if (android.os.Build.VERSION.SDK_INT >= 19) {
Mlog.e("evaluateJavascript");
webView.evaluateJavascript("startFn()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Mlog.e("onReceiveValue=="+value);
}
});
} else {
Mlog.e("webView.loadUrl(\"javascript");
webView.loadUrl("javascript:startFn()");
}
}
}
由于系統是6.0的,也就大于19。調用evaluateJavascript的時候檢視Logcat中log會發現,MediaPlayer是完成了建立和設定資源步驟的但是會在之後做出release的動作,造成音頻無法在背景正常播放。
隻能利用之前的webView.loadUrl的方式來實作。如下
private void continuePlay() {
if (webView != null){
webView.loadUrl("javascript:startFn()");
}
}