1
我是Android編程的初學者,我有一個問題。我在我的佈局中加載了一個遠程網頁,我用「webView.saveWebArchive(file.getAbsolutePath())」保存了一個webview;「方法,這個頁面有多個音頻鏈接,點擊它將播放。但是當我用mht格式保存並從本地存儲中重新加載時,音頻鏈接劑量工作。我不知道如何處理它。 請幫助我!在android studio webview中,如何處理以.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();
}
}
}
});}
私人布爾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;
}
對我來說,在mht文件中播放音頻並不重要。我只想知道如何處理用戶在web瀏覽器加載的保存網頁上的揚聲器按鈕時觸摸。 –
我不明白你的意思?你的問題是如何播放.mht格式。我說這是不可能的。現在你說你對它不感興趣。請解釋你想要的。你試過什麼代碼? – Steven
我用webview顯示mht文件。但是當我點擊音頻鏈接,它不會發生! –