2011-06-03 26 views
0

是否有任何確認的解決方案通過webView運行mp4,3gp或mp3文件?我終於有我的代碼工作mp4,3gp,mpeg,mp3在webview內部或外部流傳

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if (url.endsWith(".mp3")) { 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.parse(url), "audio/*"); 
     view.getContext().startActivity(intent); 
     return true; 
    } else if (url.endsWith(".mp4") || url.endsWith(".3gp")) { 
      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setDataAndType(Uri.parse(url), "video/*"); 
      view.getContext().startActivity(intent); 
      return true; 
    } else { 
     return super.shouldOverrideUrlLoading(view, url); 
    } 
} 

然而行:

 return super.shouldOverrideUrlLoading 

將返回錯誤: 「 方法shouldOverrideUrlLoading(WebView中,字符串)是未定義的類型活動」

我無法在任何地方找到解決方案,因爲我在過去的6周裏一直在學習Android,所以我確信我在構建此項目方面做得很好。

+1

改變上述線路返回false;由於該方法沒有在Activity類中定義,並且您正在調用超級 – ingsaurabh 2011-06-03 06:36:50

+0

我試過了。它只是使錯誤代碼消失,但沒有幫助實際播放任何文件 返回false; // return super.shouldOverrideUrlLoading(view,url);是正確的命令 } } } – 2011-06-03 07:29:22

回答

1

試試這個,

@Override 
    protected void onCreate(Bundle savedInstanceState) {   

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.articlelayout); 

     mWebView = (WebView) findViewById(R.id.webview); 


      mWebView.getSettings().setJavaScriptEnabled(true);   
      mWebView.getSettings().setAllowFileAccess(true); 
      mWebView.getSettings().setPluginsEnabled(true); 
      mWebView.setWebViewClient(new ArticleWebViewClient());     

    } 




private class ArticleWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (url.endsWith(".mp3")) { 
       Intent intent = new Intent(Intent.ACTION_VIEW); 
       intent.setDataAndType(Uri.parse(url), "audio/*"); 
       startActivity(intent); 

       return true; 

      } else if (url.endsWith(".mp4") || url.endsWith(".3gp")) { 
       Intent intent = new Intent(Intent.ACTION_VIEW); 
       intent.setDataAndType(Uri.parse(url), "video/*"); 
       startActivity(intent); 
       return true; 
      } else { 
       return false; 
      } 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 

     } 
    }