当前位置: 首页 > news >正文

WebView中操作视频播放,暂停

1. WebView 的基本概念

WebView 是一个基于 Chromium 的视图组件,它可以显示网页内容(HTML、CSS、JavaScript 等),允许用户在 Android 应用中直接交互。开发者可以通过 WebView 加载网页,执行 JavaScript,并处理网页中的多种事件。

2. 主要特点

  • 嵌入式浏览器: 可以将完整的 HTML 5 浏览器功能嵌入到应用中。
  • 支持多媒体: 可以播放音频和视频,并显示各种媒体类型。
  • JavaScript 支持: 可以执行 JavaScript,并与网页进行交互。
  • 离线支持: 可以缓存网页内容,以支持离线浏览。
  • 自定义浏览体验: 开发者可以完全控制网页的加载、导航和交互行为。

3.WebView的使用

使用很简单,不在此赘述

4.对视频基本操作

播放,暂停,静音等通用操作很简单直接贴代码

4.1播放:

mWebView.evaluateJavascript("document.querySelector('video').play();", null);

 4.2暂停:

mWebView.evaluateJavascript("document.querySelector('video').pause();", null);

4.3静音:

mWebView.evaluateJavascript("document.querySelector('video').muted="true";", null);

4.4音量控制

mWebView.evaluateJavascript("document.querySelector('video').volume="0.7";", null);

5.特定元素操作

比如视频中返回按键的监听,这个就需要获取到元素的选择器名称。

1.获取元素选择器名称

选择器解释

  • 点(.: 在 CSS 选择器中,点 . 用来选择带有指定类的元素。例如:

    • .back-icon:选择所有具有 class="back-icon" 的元素。
  • ID选择器: 如果您要选择一个 ID,以 # 开头。例如:

    • #myElement 选择具有 id="myElement" 的元素。
  • 元素选择器: 直接使用元素的名称(如 div, span, p 等)用于选择该类型的元素。例如:

    • div:选择所有 <div> 元素。

这里以Microsoft Edge浏览器为例,其他浏览器没什么差别

右键单击按钮,选择“检查”(Inspect),或使用快捷键 Ctrl + Shift + I(Windows)或 Cmd + Option + I(Mac)进入开发者工具界面,用元素选择器选中需要控制的元素,在元素栏中可以看到对应元素的class name。有了classname就可以对元素进行监听

2.监听元素点击事件

// 添加 JavaScript 接口
            mWebView.addJavascriptInterface(new WebAppInterface(), "AndroidFunction");

            // 注入 JavaScript 代码以监听点击事件
            mWebView.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url) {
                    view.evaluateJavascript(
                            "(function() { " +
                                    "  var backIcon = document.querySelector('.back-icon');" +
                                    "  if (backIcon) {" +
                                    "      backIcon.addEventListener('click', function(event) {" +
                                    "          AndroidFunction.onBackIconClicked(); " +
                                    "      });" +
                                    "  }" +
                                    "})()", null);
                }
            });


 // 创建 JS 接口
    public class WebAppInterface {
        @JavascriptInterface
        public void onBackIconClicked() {
            Log.i(TAG, "onBackIconClicked: ");
            activity.finish();

        }
    }
  1. 添加 JavaScript 接口:

    • 添加了一个 Java 接口 WebAppInterface,用作 JavaScript 与 Android 代码之间的桥梁。使用 @JavascriptInterface 注解标记的方法可以从 JavaScript 中调用。
  2. 动注入 JavaScript:

    • onPageFinished方法中,注入了 JavaScript,用于将点击事件监听器添加到 .back-icon 元素。
    • 当用户点击该元素时,调用 Android 接口 onBackIconClicked()
  3. 处理点击事件:

    • 在 Java 接口的 onBackIconClicked() 方法中,您可以添加任何需要的逻辑,这里直接关闭当前activity。

相关文章:

  • 鸿蒙(OpenHarmony/HarmonyOS)开发中常用的命令行工具及操作大全
  • SOC-ATF 安全启动BL1流程分析(1)
  • 【新立电子】探索AI眼镜背后的黑科技,FPC如何赋能实时翻译与语音识别,点击了解未来沟通的新方式!
  • LangChain解锁LLM大语言模型的结构化输出能力:调用 with_structured_output() 方法
  • 【Mastering Vim 2_08】第七章:Vim 的个性化配置
  • 本地大模型编程实战(25)用langgraph实现基于SQL数据构建的问答系统(4)
  • Harmony开发笔记(未完成)
  • 现在集成大模型的IDE,哪种开发效率最高
  • 【C语言】Leetcode热题100 --更新中
  • Python 给 Excel 写入数据的四种方法
  • P9420 [蓝桥杯 2023 国 B] 子 2023
  • LVS+keepalived实现高可用高性能高负载
  • 瑞芯微RK安卓Android主板GPIO按键配置方法,触觉智能嵌入式开发
  • DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
  • 汽车免拆诊断案例 | 保时捷车发动机偶发熄火故障 2 例
  • 大模型最新面试题系列:深度学习基础(一)
  • 【LeetCode459】重复的子字符串
  • Javascript中立即调用的异步函数表达式
  • Jupyter Notebook切换虚拟环境(Kernel管理)
  • 深度学习(3)-TensorFlow入门(常数张量和变量)
  • 网站主题推荐/seo包括哪些方面
  • 网站换空间要重新备案吗/网站快速被百度收录
  • 好的外国设计网站推荐/网络游戏营销策略
  • 旅游网站开发系统的er图/市场监督管理局职责
  • 用苹果cms做电影网站/网站推广的基本方法为
  • 如何做高并发网站的架构设计/google安卓手机下载