mp4, 3gp, mpeg, mp3 в потоковом режиме внутри или снаружи веб-просмотра - PullRequest
0 голосов
/ 03 июня 2011

Есть ли подтвержденное решение для запуска файлов mp4, 3gp или 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, String) для типа Activity не определен»1007 *

Я просто не могу найти решение для этого нигде, и я уверен, что проделал большую работу по созданию этого проекта, учитывая, что я изучаю Android только последние 6 недель.

1 Ответ

1 голос
/ 03 июня 2011

попробуйте,

@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);

        }
    }
...