2017-09-19 142 views
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; 
} 

回答

0

看這個現場看到,支持的音頻格式:https://developer.android.com/guide/topics/media/media-formats.html

+0

對我來說,在mht文件中播放音頻並不重要。我只想知道如何處理用戶在web瀏覽器加載的保存網頁上的揚聲器按鈕時觸摸。 –

+0

我不明白你的意思?你的問題是如何播放.mht格式。我說這是不可能的。現在你說你對它不感興趣。請解釋你想要的。你試過什麼代碼? – Steven

+0

我用webview顯示mht文件。但是當我點擊音頻鏈接,它不會發生! –