【问题标题】:mp4, 3gp, mpeg, mp3 streamed inside or outside of webviewmp4、3gp、mpeg、mp3 在 webview 内部或外部流式传输
【发布时间】:2011-09-07 14:25:02
【问题描述】:

是否有任何确定的解决方案可以通过 webView 运行 mp4、3gp 或 mp3 文件?我终于让我的代码工作了

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

返回错误:" Activity 类型的方法 shouldOverrideUrlLoading(WebView, String) 未定义"

我在任何地方都找不到解决方案,而且我确信我在构建这个项目方面做得很好,因为我在过去 6 周内才学习 Android。

【问题讨论】:

  • 把上面那行改成返回false;因为该方法未在 Activity 类中定义,而您正在调用 super
  • 我试过了。它只会使错误代码消失,但对实际播放任何文件没有帮助返回false; // 返回 super.shouldOverrideUrlLoading(view,url);是正确的命令} } }

标签: android webview mp3 mp4 3gp


【解决方案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);

        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    相关资源
    最近更新 更多