我正在拼凑一个便宜的应用程序,除了其他东西外,它还可以"框定"我们的一些网站……WebViewClient很简单.直到我拍下录像带.

这个视频是由HTML5个元素组成的,这些元素在Chrome和iPhone上都能很好地工作,现在我们解决了编码问题,它在本地浏览器的Android上工作得很好.

现在的问题是:WebView人不喜欢它.完全没有.我可以点击海报图像,但没有任何react .

在谷歌上搜索,我发现this个很接近,但似乎是基于一个"链接"(如a href…)而不是视频元素.(onDownloadListener似乎不会在视频元素上被调用…)

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

我不想进入"从服务器提取xml,在应用程序中重新格式化"..通过在服务器上保持故事布局,我可以更好地控制内容,而不必强迫人们不断更新应用程序.因此,如果我能说服WebView像本机浏览器那样处理标记,那就最好了.

我显然错过了一些显而易见的东西..但我不知道是什么.

推荐答案

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

-查找正确编码的视频

-初始化WebView时,设置JavaScript,插件WebViewClient和WebChromeClient.

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框架内播放视频,而不是打开媒体播放器窗口,但这对我来说是次要问题.

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

Saludos, terrícolas.

Html相关问答推荐

微软Edge中HTML页面上的奇怪文本指针

Angular 17 -如何使用@if @else向 *ngIf的同一个ng-模板指示其他两个

无法使xpath为HTML代码块工作

我需要主页按钮出现在中间

当表头包含特殊字符时,R Quarto发布的HTML表中不必要的大列宽

创建具有圆锥渐变的水平CSS聚光灯

将ANGLE模板高效地迁移到ANGLE 17中引入的新语法

创建一个带有div和径向渐变的全宽半圆

为什么我的搜索栏会出现在WONG位置?

IFRAME中的Chrome图像未调整大小

Html视频标签:圆角像素化

带有下拉菜单的完整css导航-链接不起作用?

Django HTML标记-Merge for Loop with Conditional语句

SVG的动态CSS

在 html 和 css 中绘制表格内的倾斜线

第 117 行的块标记无效:endblock,应为empty或endfor.您是否忘记注册或加载此标签?

实验的响应式屏幕尺寸

如何使用jQuery将我制作的通用头部和底部加载到多个HTML文件中?

水平对齐两列中的两个按钮 同一级别

Primeng浮动标签溢出管理