WebView和HTML5;视频;

WebView and HTML5 amp;lt;videoamp;gt;(WebView和HTML5;视频;)
本文介绍了WebView和HTML5;视频;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在拼凑一个廉价的应用程序,除了其他东西外,它还可以"框住"我们的一些网站……使用WebViewClient非常简单。直到我点击了视频。

视频是作为HTML5元素制作的,这些元素在Chrome、iPhone上运行得很好,现在我们修复了编码问题,它在本机浏览器Android上运行得很好。

现在摩擦:WebView不喜欢它。完全没有。我可以点击海报图像,但没有任何反应。

搜索,我发现this很接近,但似乎基于一个‘链接’(如在href中...)而不是视频元素。(在视频元素上似乎没有调用onDownloadListener...)

我也看到了对覆盖onShowCustomView的引用,但在视频元素上似乎没有调用...也不应该覆盖UrlLoading..

我宁可不谈"从服务器提取XML,在应用程序中重新格式化它"。通过将故事布局保留在服务器上,我可以更好地控制内容,而不会强迫人们不断更新应用程序。因此,如果我能说服WebView像处理本机浏览器一样处理标记,那将是最好的。

我显然漏掉了一些明显的东西。但我不知道是什么。

推荐答案

我回答此主题只是为了防止有人阅读并对结果感兴趣。 在WebView中查看视频元素(视频HTML5标签)是可能的,但我必须说我不得不处理它几天。到目前为止,我必须遵循以下步骤:

-查找正确编码的视频

-在初始化WebView时,设置WebViewClient和WebChromeClient的JavaScript、插件。

url = new String("http://broken-links.com/tests/video/"); 
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebChromeClient(chromeClient);
mWebView.setWebViewClient(wvClient);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginState(PluginState.ON);
mWebView.loadUrl(url);

-处理WebChromeClient对象中的onShowCustomView。

@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
    super.onShowCustomView(view, callback);
    if (view instanceof FrameLayout){
        FrameLayout frame = (FrameLayout) view;
        if (frame.getFocusedChild() instanceof VideoView){
            VideoView video = (VideoView) frame.getFocusedChild();
            frame.removeView(video);
            a.setContentView(video);
            video.setOnCompletionListener(this);
            video.setOnErrorListener(this);
            video.start();
        }
    }
}

-处理视频的onCompletion和onError事件,以便返回Web视图。

public void onCompletion(MediaPlayer mp) {
    Log.d(TAG, "Video completo");
    a.setContentView(R.layout.main);
    WebView wb = (WebView) a.findViewById(R.id.webview);
    a.initWebView();
}

但现在我应该说还有一个重要的问题。我只能玩一次。第二次单击视频调度器(海报或某个播放按钮)时,它什么也不起作用。

我还希望在WebView框架内播放视频,而不是打开媒体播放器窗口,但这对我来说是次要问题。

我希望这对某些人有帮助,我也感谢任何意见或建议。

您好!

这篇关于WebView和HTML5;视频;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
How to render something in an if statement React Native(如何在If语句中呈现某些内容Reaction Native)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Using Firebase Firestore in offline only mode(在仅脱机模式下使用Firebase FiRestore)
Crash on Google Play Pre-Launch Report: java.lang.NoSuchMethodError(Google Play发布前崩溃报告:java.lang.NoSuchMethodError)