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

鸿蒙视频播放的实现

文章目录

  • 前言
  • 播放效果
  • 视频播放的实现
  • 总结
一、前言

现在市面上很多应用都跟视频有关,那么在鸿蒙系统上怎么来播放视频呢,今天就讲解视频播放控件,让你也能快速地进行视频播放功能开发。

最后呢,我会提供一个鸿蒙中涉及的主要组件的使用,这个库不断在更新,对学习组件是很有帮助的,你只要运行就能看到效果,如果你项目中要用,直接复制粘贴,非常方便。

二、播放效果

在这里插入图片描述

三、视频播放的实现
1、准备.mp4 资源

找到一个mp4的资源,把它放到目录下的entry/src/main/resource/rawfile

我们想要播放视频,那么肯定要找到这个地址,那么在项目中怎么找到这个资源呢,代码如下

  @State videoSrc: Resource = $rawfile('1.mp4')
2、使用控件播放

声明以下这几个变量

  @State previewUri: Resource = $r('app.media.app_icon') //预览封面@State curRate : PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X   //1倍数播放@State isAutoPlay: boolean = false   //是否自动播放@State showControls: boolean = true  //是否显示视频控制栏controller: VideoController = new VideoController()

使用Video 组件

      Column() {Video({src: this.videoSrc,previewUri: this.previewUri,currentProgressRate: this.curRate,controller: this.controller}).width('100%').height(600).autoPlay(this.isAutoPlay).controls(this.showControls).onStart(()=>{console.log('onStart')}).onPause(()=>{console.log('onPause')}).onFinish(()=>{console.log('onFinish')}).onError(()=>{console.log('onError')}).onPrepared((e?: DurationObject)=>{ //获取总的播放时长if (e != undefined) {console.log('onPrepared is'  + e.duration)}}).onSeeking((e?: TimeObject) => { //拖拽到哪里的监听,比如6,7,8,9秒的为位置console.log('onSeeking is ' + e.time)})}

点击播放

  Button('开始播放').onClick(()=>{this.controller.start()//这里是开始播放})

暂停播放

   Button('暂停播放').onClick(()=>{this.controller.pause() //这里是暂停播放}).margin(5)

定位到某个播放位置

  Button('跳到10s位置').onClick(()=>{this.controller.setCurrentTime(10, SeekMode.Accurate) //定位到某个位置})

切换视频

  Button('切换视频').onClick(()=>{this.videoSrc = $rawfile('2.mp4') //切换到2这个视频进行播放})

控制是否显示视频控制栏

  Button('是否显示视频控制栏').onClick(()=>{this.showControls = !this.showControls //切换是否显示视频控制栏})

切换预览封面

Button('切换预览封面').onClick(()=>{this.previewUri = $r('app.media.phone')  //切换预览的封面})

设置播放速度

  Button('0.75倍数').onClick(()=>{this.curRate = PlaybackSpeed.Speed_Forward_0_75_X;})

学习不贪多,一点点来,上面就是视频播放主要的东西,跟着自己撸一遍就很清晰了。

最后呢,将我整理的这些组件都放到这个项目中,后面有新增,也会一并上传。开发中,某些api忘记了,可以重新拿出来看看。

最后献上我的个人v,专属终身顾问,解答关于鸿蒙相关的东西,包括项目中的问题,还有最新的技术点,快速开发,抢在前头。hmssz1

技术迭代很快,不要在一个问题上拔不出来,找到专业的人,快速的解决,作为程序员时间是最宝贵的,不要自己蒙头苦干,等你搞懂了,这个技术已经过时了。

以上代码地址:https://github.com/shenshizhong/ViewUseDemo

总结

1、视频资源存放位置
2、找到资源进行播放
3、实现播放形式切换

如果对你有一点点帮助,那是值得高兴的事情。:)
我的csdn:http://blog.csdn.net/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad

相关文章:

鸿蒙视频播放的实现

文章目录 前言播放效果视频播放的实现总结 一、前言 现在市面上很多应用都跟视频有关,那么在鸿蒙系统上怎么来播放视频呢,今天就讲解视频播放控件,让你也能快速地进行视频播放功能开发。 最后呢,我会提供一个鸿蒙中涉及的主要…...

QT----计算器

目录 1 搭建标准界面2、 逻辑编写2.1 初始化 github链接:基于qt的计算器 更多内容可以点击这里查看个人博客:个人博客 1 搭建标准界面 按照下图搭设界面 修改样式让这计算器看起来更像一点,同时对按钮分组进行样式编辑,添加字符…...

Linux:kubernetes(k8s)Deployment的操作(13)

创建deployment 命令 kubectl create deploy nginx-deploy --imagenginx:1.7.9 再去使用以下命令分别查询 ubectl get deploy kubectl get replicaset kubectl get pod 他是一个层层嵌套的一个关系 首先是创建了一个 deploy 里面包含着replicaset replicaset里面含有…...

20240619-James-快速鸟瞰并发编程, 呕心沥血整理的架构技术(第3篇)

接着第1, 2篇后,我们继续来跟进一下并发编程的其它内容,如下: 第9节 java.util.concurrent包 线程池 线程池的核心接口是ExecutorService。java.util.concurrent还提供了一个静态工厂类Executors,其中包含用于创建配置线程池的…...

C语言——详解字符函数和字符串函数(一)

Hi,铁子们好呀!今天博主来给大家更一篇C语言的字符函数和字符串函数~ 具体讲的内容如下: 文章目录 🎆1.字符分类函数💯💯⏩1.1 什么是字符分类函数的?💯💯⏩1.2 字符函数的类型有哪…...

三款内衣洗衣机的顶级较量:希亦、小吉、由利,谁才是性价比之王?

洗衣机在我们的生活中可谓是非常常见的了,几乎每家每户都具备着一台。即便是有洗衣机,也有不少人不会将自己我贴身衣物直接扔在洗衣机里清洗,而是会自己手工手洗。这跟我们传统上的观念有很大的关系,认为把内衣、内裤等贴身衣物放…...

Java枚举多值映射应用

在日常系统交互中,经常遇到两个系统间定义的枚举不一致,在接口调用时需要转换,记录实现,方便备查。 场景 双方的支付方式定义不同,一侧为数字,一侧为英文,若使用 if 判断,则显得繁琐…...

css--浮动

一. 浮动的简介 在最初,浮动是用来实现文字环绕图片效果的,现在浮动是主流的页面布局方式之一。 二. 元素浮动后的特点 🤢脱离文档流。😊不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开&#xff0…...

基于有限状态机开发健壮的Nodejs/TCP客户端

有限状态机是一种数学计算模型,它描述了在任何给定时间只能处于一种状态的系统的行为。形式上,有限状态机有五个部分: 初始状态值 (initial state)有限的一组状态 (states)有限的一组事件 (events)由事件驱动的一组状态转移关系 (transition…...

javaEE13(网站第8章两个课后题)

1、对“jspservletjavabean实现分页查询”功能做如下补充: (1)记录批量删除:每个记录前添加复选框,点击批量删除,删除选中记录。 增加跳转到任意页功能。用户可改变每页记录条数。 页面&am…...

【Leetcode每日一题】 递归 - 反转链表(难度⭐)(35)

1. 题目解析 题目链接:206. 反转链表 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针,并返回该链表逆序后的新头结点。递归…...

Unity基础学习

目录 基础知识点3D数学——基础Mathf三角函数坐标系 3D数学——向量向量模长和单位向量向量的加减乘除向量点乘向量叉乘向量插值运算 3D数学——四元数为何使用四元数四元数是什么四元数常用方法四元数计算 MonoBehavior中的重要内容延迟函数协同程序协同程序原理 Resources资源…...

Java并发编程学习笔记:AQS

Java并发编程学习笔记:AQS 一、底层原理核心功能同步状态管理CLH 队列和线程调度机制独占模式与共享模式模板方法设计模式自旋、阻塞与超时机制 运行流程 二、锁的公平性公平锁非公平锁 三、容器实现 JUC中的AQS(AbstractQueuedSynchronizer)…...

Github上哪些好用的工具

专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! Qexo-爱写博客的师傅强烈推荐 漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、…...

如何确保面试流程标准化操作,避免人为因素影响**

一、背景 在招聘过程中,面试作为关键环节,其标准化操作至关重要。标准化不仅有助于提高面试效率和质量,还能减少人为因素的影响,确保公平、公正和客观。本文将从以下八个方面探讨如何确保面试流程的标准化操作。 二、明确面试标准 制定明确的面试标准和要求,确保所有面试…...

YOLOv7改进 | 更换主干网络之PP-LCNet

前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对于计…...

MySQL基础-----多表查询之子查询

目录 前言 子查询概述 1.概念 2.分类 一、标量子查询 二、列子查询 三、行子查询 四、表子查询 前言 上一期我们讲了内外连接查询以及自连接查询,那么本期我们就学习多表查询的子查询。本期会详细讲解什么是子查询,以及子查询的相关功能&#xf…...

nginx应用场景(附配置)

场景1:web服务器 server {listen 80;server_name example.com; # 替换为您的域名location / {root /data/wwwroot;index index.html index.htm;} }server {listen 443 ssl;server_name example.com; # 替换为您的域名ssl_certificate /path/to/certificate.crt;ssl…...

tvm android_rpc_test.py执行报错解决

执行 python3 tests/android_rpc_test.py 报错&#xff1a; Run CPU test ... Traceback (most recent call last): File "tests/android_rpc_test.py", line 129, in <module> test_rpc_module() File "tests/android_rpc_test.py", line …...

十、项目沟通管理

十、项目沟通管理 从马斯洛需求的各个层级上&#xff0c;都需要沟通的介入。如果缺乏沟通&#xff0c;甚至可能严重损伤身心健康。 沟通渠道 1、 规划沟通管理 ​ 规划沟通管理是基于每个相关方或相关方群体的信息需求、可用的组织资产&#xff0c;以及具体项目的需求&#x…...

Graphormer一文详解:RDKit+PyG+Gradio技术栈整合与Supervisor服务管理

Graphormer一文详解&#xff1a;RDKitPyGGradio技术栈整合与Supervisor服务管理 1. 项目概述 Graphormer是一种基于纯Transformer架构的图神经网络模型&#xff0c;专门为分子图&#xff08;原子-键结构&#xff09;的全局结构建模与属性预测而设计。该模型在OGB、PCQM4M等分…...

Win11Debloat:让Windows 11系统轻盈如飞的优化工具

Win11Debloat&#xff1a;让Windows 11系统轻盈如飞的优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and custo…...

NVIDIA Profile Inspector实战指南:从参数调试到显卡性能极致释放

NVIDIA Profile Inspector实战指南&#xff1a;从参数调试到显卡性能极致释放 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 诊断性能瓶颈 显卡性能表现不佳往往是多种因素共同作用的结果&#xff0c…...

intv_ai_mk11快速上手:浏览器输入URL→发送‘帮我写周报’→获得带数据亮点的Word格式草稿

intv_ai_mk11快速上手&#xff1a;浏览器输入URL→发送帮我写周报→获得带数据亮点的Word格式草稿 1. 什么是intv_ai_mk11 intv_ai_mk11是一款基于Llama架构的AI对话助手&#xff0c;拥有7B参数规模&#xff0c;运行在GPU服务器上。它能像真人助手一样理解你的需求&#xff0…...

鸿蒙 ArkTS 高级样式复用:@Extend 装饰器完全解析(比 @Styles 更强大)

&#x1f525;前言&#xff1a;在上一篇文章《鸿蒙 ArkTS 样式复用&#xff1a;Styles 装饰器从入门到实战》中&#xff0c;我们学习了使用 Styles 实现基础样式复用。 但 Styles 不支持传参、不能使用组件专有属性&#xff0c;在复杂 UI 场景下能力有限。 &#x1f4cc; 本文…...

Qwen3智能字幕对齐系统与Dify工作流集成:打造自动化视频内容生产线

Qwen3智能字幕对齐系统与Dify工作流集成&#xff1a;打造自动化视频内容生产线 1. 引言 你有没有算过&#xff0c;一个视频剪辑师一天要花多少时间在字幕上&#xff1f;从听写、校对、再到调整时间轴&#xff0c;一个十分钟的视频&#xff0c;光是字幕可能就要耗掉一两个小时…...

战争鼓点响起:AI生成大片感战斗音乐作品

战争鼓点响起&#xff1a;AI生成大片感战斗音乐作品 1. 从文字到战歌&#xff1a;AI音乐生成初体验 想象一下这样的场景&#xff1a;你正在制作一部史诗级的战斗短片&#xff0c;画面中千军万马奔腾&#xff0c;刀光剑影交错&#xff0c;但总觉得缺少点什么。没错&#xff0c…...

HUNYUAN-MT惊艳翻译效果:专业领域长文档翻译案例集

HUNYUAN-MT惊艳翻译效果&#xff1a;专业领域长文档翻译案例集 最近在尝试各种翻译工具时&#xff0c;我偶然间用到了HUNYUAN-MT 7B模型来处理一些工作上的专业文档。说实话&#xff0c;一开始没抱太大期望&#xff0c;毕竟专业翻译的门槛不低&#xff0c;尤其是那些充满术语和…...

忍者像素绘卷:天界画坊Python入门实战,3步搭建AI绘画环境

忍者像素绘卷&#xff1a;天界画坊Python入门实战&#xff0c;3步搭建AI绘画环境 1. 前言&#xff1a;当Python遇见像素艺术 还记得小时候玩过的8-bit游戏吗&#xff1f;那些由一个个小方块组成的像素世界&#xff0c;如今正以全新的方式回归。天界画坊是一个开源的AI绘画工具…...

PyTorch 2.8镜像部署教程:RTX 4090D配置htop实时监控GPU/CPU/内存使用

PyTorch 2.8镜像部署教程&#xff1a;RTX 4090D配置htop实时监控GPU/CPU/内存使用 1. 环境准备与快速部署 在开始之前&#xff0c;请确保您的硬件配置满足以下要求&#xff1a; 显卡&#xff1a;RTX 4090D 24GB显存内存&#xff1a;120GB及以上存储&#xff1a;系统盘50GB …...