Как открыть видеоплеер в WebView?

Я показал WebApp с Webview. На этих страницах есть ссылки на видео (MP4, 3GP ...).

Когда я нажимаю на ссылку, ничего не происходит.

public class luxgateway extends Activity {

WebView myWebView;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);     

    myWebView = (WebView) findViewById(R.id.webview);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.getSettings().setAllowFileAccess(true); 

    WebViewClient webViewClient = new MyWebViewClient();
    myWebView.setWebViewClient(webViewClient);

    myWebView.loadUrl("http://www.example.com/demo.html");
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
        myWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

private class MyWebViewClient extends WebViewClient {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.endsWith(".3gp")) {
            Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url));
            view.getContext().startActivity(intent);    
            return true;
        } else {
            return super.shouldOverrideUrlLoading(view, url);
        }
    }
}

Я нашел некоторые части этого кода на этом сервере, но мне это не помогает "

        if (url.endsWith(".3gp")) {
            Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url));
            view.getContext().startActivity(intent);    
            return true;
        } else {
            return super.shouldOverrideUrlLoading(view, url);
        }

В этом случае я ограничен файлами 3GP, но я не знаю, какое расширение будет размещено на веб-сайте.

Я пробовал этот код в этом тесте, только чтобы посмотреть, можно ли воспроизвести видео (или запускать видеоплеер только с этим кодом

                Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url));
            view.getContext().startActivity(intent);    
            return true;

В этом случае видео только скачивается. Я хочу использовать образец взаимодействия в качестве веб-браузера. Когда я нажимаю ссылку на видео, браузер спрашивает, какой плеер я хочу использовать для этого видео.


person Lord St John    schedule 26.01.2011    source источник


Ответы (1)


Возможно, вам повезет больше, если вы укажете, что uri содержит видео:

Intent intent = new Intent(Intent.ACTION_VIEW) //I encourage using this instead of specifying the string "android.intent.action.VIEW"
intent.setDataAndType(Uri.parse(url), "video/3gpp");
view.getContext().startActivity(intent);  

Поскольку мы не указали конкретный пакет для обработки вышеуказанного намерения, это называется неявным намерением. Для неявных намерений, если существует несколько пакетов, обрабатывающих указанный вами тип контента, вам будет предложено выбрать между ними. Это должно дать вам желаемое поведение.

person Error 454    schedule 04.02.2011