Android的WebView不支持播放音乐,但是只要给它添加相关接口,就可以从Javascript中调用Android类中接口程序来播放音乐了,这对于混合开发是非常需要的。
步骤:
为Android和WebView内的Javascript添加播放音乐的接口:
private class Music{
public MediaPlayer mp1= MediaPlayer.create(getApplicationContext(),R.raw.ding);
public MediaPlayer mp2= MediaPlayer.create(getApplicationContext(),R.raw.explosion);
public MediaPlayer mp3= MediaPlayer.create(getApplicationContext(),R.raw.ju);
public MediaPlayer mp4= MediaPlayer.create(getApplicationContext(),R.raw.sail);
@JavascriptInterface
public void playMusic(String song){
switch(song){
case "ding":
mp1.start();
break;
case "explosion":
mp2.start();
break;
case "ju":
mp3.start();
break;
case "sail":
mp4.start();
break;
}
}
}
webview = (WebView) findViewById(R.id.webView);
//为webview添加chrome浏览器功能
webview.setWebChromeClient(new WebChromeClient());
webview.setWebViewClient(new WebViewClient());
//设置WebView属性,能够执行Javascript脚本
webview.getSettings().setJavaScriptEnabled(true);
//添加JS接口
Music music=new Music();
webview.addJavascriptInterface(music, "Music");
//加载需要显示的网页
String url_asset = "file:///android_asset/index.html";
webview.loadUrl(url_asset);
//设置Web视图
webview.setWebViewClient(new MyWebViewClient());
Music.playMusic("ding");