【问题标题】:Youtube video cant start playing in webView AndroidYoutube 视频无法在 webView Android 中开始播放
【发布时间】:2011-11-04 11:13:41
【问题描述】:

我需要在自定义对话框的 webView 中显示。 无论如何,我可以加载 youtube 网站,并浏览 trought 视频,但是当我想播放一些视频时,当我点击播放时没有任何反应。视频只是像被选中一样得到橙色闪烁,但没有开始加载和播放。有什么问题?

我在网上找到了教程,并试图修改它。代码如下:

    dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialog);

    pd = (ProgressBar) dialog.findViewById(R.id.web_view_progress_bar);

    webview = (WebView) dialog.findViewById(R.id.web_view);

    webview.getSettings().setPluginState(PluginState.ON);
    webview.getSettings().setJavaScriptEnabled(true);

    webview.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress) {
            if (progress < 100 && pd.getVisibility() == ProgressBar.GONE) {
                pd.setVisibility(ProgressBar.VISIBLE);
            }
            pd.setProgress(progress);
            if (progress == 100) {
                pd.setVisibility(ProgressBar.GONE);
            }
        }
    });

    webview.setWebViewClient(new YoutubeWebViewClient());
    //shouldOverrideUrlLoading(webview, this.getUrl());
    webview.loadUrl(this.getUrl());

    dialog.show();

}


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


private class YoutubeWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

帮助?

更新:

我已经尝试过以其他方式执行此操作,但再次出现问题...

我试图在 webView 中嵌入 youtube html5 播放器。我只能在没有 youtube 视频的情况下返回现场。 webView 的右上角是 youtube 标志,仅此而已。没有安卓手机,在安卓x86平台上测试应用。有问题吗?

帮助 :) 不关心实现方式,我只需要它来工作^^

【问题讨论】:

  • 您是否更新了您正在测试的手机的 Flash 播放器??可能是因为您无法播放视频。

标签: android webview youtube


【解决方案1】:

我不知道为什么但是 webviewclient 类会导致问题,我们可以在默认浏览器中运行它删除 webviewclient 类并简单地加载 youtube 的 url 你将能够在 2.2 上运行它 2.1 只需使用意图并通过 parse 方法通过 youtube 应用程序打开它

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s")))); }

【讨论】:

  • 我正在制作电视应用程序,而 youtube 就像一个小部件。它的安卓2.2。当我启动 youtube 时,我需要它在某种对话框中显示,因为视频流正在背景中播放,我不想开始有意图的新活动。
  • 当我们通过 webviewclient 类从默认网络浏览器中获取控制权时,它不支持弹出窗口等动态内容,在这里您不必实际进行新活动,您只需调用已安装的 youtube 播放器即可默认情况下是否存在使用您调用默认播放器的意图。是的,但是为了在某种对话框中显示它,您需要创建一个带有布局的 js 对话框,然后您将调用 youtube 嵌入链接。
【解决方案2】:

到目前为止,这是我在 android webview 中发现的一种错误,对我来说,只需在清单中添加 Hardware Accleration 权限即可。在我的 webview 中嵌入的视频开始播放之后。

【讨论】:

  • 硬件加速权限在 2.3 或更低的 api 下不起作用。你的 android:minSdkVersion 是什么?所以我正在使用“ "
猜你喜欢
  • 1970-01-01
  • 2012-08-05
  • 2012-12-14
  • 2016-06-16
  • 2017-12-23
  • 2012-09-24
  • 2013-07-13
  • 2014-02-10
  • 1970-01-01
相关资源
最近更新 更多