javascript - 如何从 WebView 中访问与 Android 应用程序捆绑的 MP3 文件?
问题描述
我assets
在我的 Android 应用程序的文件夹下放置了一个 MP3 文件,并尝试使用以下 JS 代码从 WebView(HTML 文件)中访问它:
var audio = new Audio('file:///android_asset/song.mp3')
audio.play()
但这不起作用。知道怎么做吗?
解决方案
这应该有帮助。
WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview=(WebView)findViewById(R.id.webview);
webview.setWebViewClient(new MyWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/song.mp3");
}
class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
playaudio();
return true;
}
}
private void playaudio(){
int i=R.raw.test;
Log.v("id of file",""+i);
if(i!=0){
MediaPlayer player = new MediaPlayer().create(getBaseContext(),i);;
player.setVolume(0.9f, 0.9f);
player.start();
}
}
推荐阅读
- python - 基于树莓派的示波器无法显示图形
- c# - 如何从被调用的进程中传递值
- jenkins - 如果任何下游作业失败,则将 Jenkins 作业链标记为失败
- selenium - 在 TestNG XML 文件中实现范围报告时出现 java.lang.ClassCastException 错误
- matplotlib - 如何在数据中显示标签?
- java - 无法在 android studio 中解析符号 R 并且在 android studio 中找不到 com.android.build:aapt2:3.3.0-alpha05-4916870 错误
- php - 如何在嵌入式 linux 上启动 Apache2 服务器?
- java - 片段销毁时关闭 BottomSheetDialog
- android - 在没有后端的 Android 应用中接收云端硬盘内容通知
- java - 关闭 JFrame 但继续执行程序