2017-09-19 7 views
1

Je suis un débutant en programmation Android et j'ai un problème. J'ai un webview dans ma mise en page qui charge une page web distante et je l'ai sauvegardé avec "webView.saveWebArchive (file.getAbsolutePath());" méthode, cette page ont un lien audio multi qui cliquez dessus sera joué. mais quand j'ai sauvegardé avec le format mht et le recharger depuis le stockage local, le lien audio fonctionne. et je ne sais pas comment le gérer. s'il vous plaît aidez-moi !!Comment gérer cliquer sur le lien audio enregistré avec le format .mht dans android studio webview?

Ceci est mon code:


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(); 
       } 
      } 
     } 
    });} 

privée booléenne PlayFromStorage (String fileName) {

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; 
} 

Répondre

0

Regardez ce site pour voir les formats audio pris en charge: https://developer.android.com/guide/topics/media/media-formats.html

+0

Ce n'est pas mater pour moi jouer de l'audio dans le fichier mht. Je veux juste savoir comment puis-je gérer lorsque l'utilisateur touche sur le bouton haut-parleur sur web enregistré paginé chargé par webview. –

+0

Je ne comprends pas ce que tu veux dire? Votre question est de savoir comment lire le format .mht. Je dis que ce n'est pas possible. Maintenant, vous dites que cela ne vous intéresse pas. S'il vous plaît expliquer ce que vous voulez. Quel code as-tu essayé? – Steven

+0

Je montre le fichier mht avec webview. Mais quand je clique sur le lien audio ça n'arrive pas !!! –