【问题标题】:Android: how to detect a video is being played in WebView?Android:如何检测 WebView 中正在播放的视频?
【发布时间】:2016-08-02 12:07:45
【问题描述】:

我正在开发一个应用程序,并且 YouTube.com 已嵌入到 WebView 中。单击任何视频时都无法播放视频(它永远处于加载状态)。因此,当用户单击视频播放按钮时,我尝试使用 VideoView 或 YouTubePlayerFragment 播放视频。我的问题是:有什么方法可以检测到用户点击了播放按钮吗?

我在 WebView 上添加了下面的监听器,但 hr 不足以告诉使用点击播放按钮。

    webView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            WebView.HitTestResult hr = ((WebView)v).getHitTestResult();

            return false;
        }
    });

【问题讨论】:

  • 你最近有没有找到解决办法>?
  • @WideFide,我不知道根本原因,但事实证明无法在 webview 中播放 youtube 视图,因为我在布局中为 webview 设置了 android:layerType="software"。从布局中删除它后,可以播放和暂停视频。
  • 请检查这个:my answer

标签: android webview android-video-player


【解决方案1】:

经过调查,我使用其他帖子中提供的解决方案: WebView link click open default browserSupport for other protocols in Android webview

webView.setWebViewClient(new WebViewClient() {
    ...
    @Override
    public void onPageFinished(WebView view, String url) {
        String string = "YouTube URL regular expression";
        if (url.toLowerCase().matches(string)) {
            launchInBrowserOrYouTubeApp(url);
        }
    }
    ...
}

此解决方案仍有一个问题。当我第一次点击任何视频时,会触发此方法并且网址为“www.youtube.com”(当我第二次点击任何视频时,网址为“www.youtube.com/watch?v=ajsdfhjh”或更多),这与初始化 webview 时完全相同。所以我无法判断是用户点击了视频还是 webview 初始化。

【讨论】:

    猜你喜欢
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2013-07-20
    • 1970-01-01
    • 2012-12-16
    • 2014-07-22
    • 2013-12-18
    相关资源
    最近更新 更多