gpt4 book ai didi

java - 如何处理在 android studio webview 中以 .mht 格式保存的音频链接的点击?

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:55 24 4
gpt4 key购买 nike

我是 android 编程的初学者,我遇到了一个问题。我的布局中有一个 webview,它加载远程网页,我用“webView.saveWebArchive(file.getAbsolutePath());”保存它。方法,这个页面有多个音频链接,点击它就会播放。但是当我用 mht 格式保存并从本地存储重新加载它时,音频链接不起作用。我不知道该如何处理。请帮助我!!

这是我的代码:

<小时/>
private void InitialWebView() {
webView = (WebView) findViewById(R.id.webloder);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

if (isSavedWord()) {
webView.loadUrl("file:///" + android.os.Environment.getExternalStorageDirectory() +
"/Ajhang Leitner Box/Web Pages/" + Argu[1] + "/" + Argu[0] + ".mht");
} else
webView.loadUrl(htmlPageUrl + Argu[0]);

webView.setWebViewClient(new WebViewClient() {
@Override
public void onLoadResource(WebView view, String url) {
if (isMp3(url)) {
if (!PlayFromStorage(getAudioName(url))) {
if (checkInternetConenction())
downloadAudio(url, getAudioName(url));
} else {
webView.stopLoading();
}
}
}
});}

私有(private) boolean 值PlayFromStorage(字符串文件名) {

    try {

File cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), "Ajhang Leitner Box/" + fileName);
if (cacheDir.exists()) {

try {
String filePath = android.os.Environment.getExternalStorageDirectory() + "/Ajhang Leitner Box/" + fileName;
webView.loadUrl("file://" + android.os.Environment.getExternalStorageDirectory() + "/Ajhang Leitner Box/" + fileName);
MediaPlayer mediaPlayer;
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(filePath);
mediaPlayer.prepare();
mediaPlayer.start();
}
catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (RuntimeException e)
{


} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return true;
} else
return false;
} catch (Exception e) {
return false;
}

}

private boolean isSavedWord() {

File cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), "/Ajhang Leitner Box/Web Pages/" + Argu[1] + "/" + Argu[0] + ".mht");
if (cacheDir.exists())
return true;
return false;
}


private boolean isMp3(String url) {
if (url.contains(".mp3"))
return true;
return false;
}

最佳答案

查看此站点以查看支持的音频格式:https://developer.android.com/guide/topics/media/media-formats.html

关于java - 如何处理在 android studio webview 中以 .mht 格式保存的音频链接的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46302092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com