昨天问同事有没有看鸿蒙发布会,都说看了(技术人都关注的鸿蒙),但是他们没有真正的了解鸿蒙的开发和鸿蒙系统,耳听为虚实操起来才感受到好不好,我建议他们都入门一下,系统源码下下来看看,毕竟国产系统,并且还是很强大的,几年时间发展这么快,可以说是前所未有吧。

至于说到 很多人说不知道怎么入手,其实不管学啥开发 去学进行,每天一点点,一个月后看结果吧。

说起来视频播放 ,现在这个直播时代,能开发一个视频播放也是很不错了,在鸿蒙里面开发视频播放 就是简单。

场景:

使用video组件,实现本地视频和在线视频播放,可以实现状态栏显示,横屏全屏播放,显示播放时间和总时间,点击屏幕实现暂停和播放。

下面我们开始今天的文章,还是老规矩,通过如下几点来说:

1,实现思路

2,代码解析

3,实现效果

3,总结

一,实现思路

添加一个video组件用于视频播放的操作,设置屏幕显示的宽高,设置全屏播放,通过点击事件设置视频的播放和暂停。

二,代码解析

1,hml文件

(1)添加视频播放组件video

(2)src设置视频路径 可以是本地也可以是在线

(3)autoplay设置视频默认是否播放

(4)设置视频播放的事件:播放,暂停,完成,错误,拖动等

<div class="container"><text class="text">本地视频播放:</text><video id='videoId' class="videoStyle" src='/common/video/button.mp4' muted='false'autoplay='true' controls="true" onprepared="onprepared" onstart="onstart"onpause="onpause" onfinish="onfinish" onerror="onerror" onseeking="onseeking"onseeked="onseeked" ontimeupdate="ontimeupdate" onclick="change_start_pause"></video><text class="text">网络视频播放:</text><video id='videoId' class="videoStyle" src='http://static.video.qq.com/TPout.swf?vid=a1400po96pp' muted='false'autoplay='true' controls="true"></video>
</div>

2,css文件

(1)设置视频的默认宽高videoStyle

.container {flex-direction: column;justify-content: flex-start;align-items: center;
}
.text{font-size: 20px;color: chocolate;font-weight: bold;margin: 20px;
}
.videoStyle {width: 100%;height: 200px;object-fit: fill;
}

3,js文件

(1)onstart(){ // 播放时触发该事件

(2)onpause(){ // 暂停时触发该事件

(3)onfinish(){ // 播放结束时触发该事件

(4)onerror(){ // 播放失败时触发该事件

(5)onseeking(e){ // 操作进度条过程时上报时间信息

(6)change_start_pause是视频的点击事件,通过设置状态判断 点击视频状态和点击后是否播放和暂停状态 this.$element('videoId').pause();

this.$element('videoId').start();

import prompt from '@system.prompt';
export default {data: {title: 'World',isStart: true,},onprepared(e){ // 视频准备完成时触发该事件prompt.showToast({message:"准备就绪:"+e.duration,duration:3000})},onstart(){ // 播放时触发该事件prompt.showToast({message:"播放开始",duration:3000})},onpause(){ // 暂停时触发该事件prompt.showToast({message:"播放暂停",duration:3000})},onfinish(){ // 播放结束时触发该事件prompt.showToast({message:"播放结束",duration:3000})},onerror(){ // 播放失败时触发该事件prompt.showToast({message:"播放失败",duration:3000})},onseeking(e){ // 操作进度条过程时上报时间信息prompt.showToast({message:"onseeking 拖动时间:" + e.currenttime,duration:3000})},onseeked(e){ // 操作进度条完成后,上报播放时间信息prompt.showToast({message:"onseeked 时间:" + e.currenttime,duration:3000})},ontimeupdate(e){ // 播放进度变化时触发该事件},change_start_pause: function() {if(this.isStart) {this.$element('videoId').pause();this.isStart = false;} else {this.$element('videoId').start();this.isStart = true;}},
}

三,实现效果

​​

四,总结

为了便于有些属性,样式,参数大家看着不太清晰,这里总结一下。

video 视频播放组件。

属性

1,muted 视频是否静音播放。,

2,src 播放视频内容的路径。

3,autoplay 视频是否自动播放。,

4,controls 控制视频播放的控制栏是否显示,如果设置为false,则不显示控制栏。默认为true,由系统决定显示或隐藏控制栏。

样式

5,object-fit 视频源的缩放类型,如果poster设置了值,那么此配置还会影响视频海报的缩放类型,可选值参考表 object-fit 类型说明。

object-fit 类型说明 fill 不保持宽高比进行放大缩小,使得图片填充满显示边界。

事件

1,prepared 视频准备完成时触发该事件,通过duration可以获取视频时长,单位为s。

2,start 播放时触发该事件。

3,pause 暂停时触发该事件。,

4,finish 播放结束时触发该事件。

5,error 播放失败时触发该事件。,

6,seeking 操作进度条过程时上报时间信息,单位为s。,

7,seeked 操作进度条完成后,上报播放时间信息,单位为s。

8,timeupdate 播放进度变化时触发该事件,单位为s,更新时间间隔为250ms。

方法

1,start 请求播放视频。,

2,pause 请求暂停播放视频。

3,setCurrentTime 指定视频播放的进度位置,单位为s。

设置屏幕支持横屏

"abilities": [

{

"configChanges": ["orientation"],

}

]

原创不易,有用就关注一下。要是帮到了你 就给个点赞吧,多谢支持。

觉得不错的小伙伴,记得帮我 点个赞和关注哟,笔芯笔芯~**

有问题请留言或者私信,可以 WX搜索公众号:程序员漫话编程

鸿蒙应用开发:视频播放器,真简单!!!相关推荐

  1. 基于FFmpeg开发视频播放器, 基本流程(一)

    刚开始学习FFmpeg,用几篇文章记录下,使用ffmpeg开发一个简单的视频播放器,大概的过程.这里只讨论核心代码,如解封装,音频的解码播放,视频的解码播放,音视频同步,不涉及UI布局. 基于FFmp ...

  2. typescript 从零开发视频播放器

    typescript 从零开发视频播放器 前言 项目架构设计 技术栈 双端支持 元素的显示和隐藏说明 组件化开发 组件之间的通讯 拖拽行为 初始化模板 video 标签组件 控制器的显示和隐藏 显示时 ...

  3. python开发视频播放器_Python应用03 使用PyQT制作视频播放器实例

    最近研究了Python的两个GUI包,Tkinter和PyQT.这两个GUI包的底层分别是Tcl/Tk和QT.相比之下,我觉得PyQT使用起来更加方便,功能也相对丰富.这一篇用PyQT实现一个视频播放 ...

  4. python开发视频播放器_Python使用PyQT制作视频播放器

    最近研究了Python的两个GUI包,Tkinter和PyQT.这两个GUI包的底层分别是Tcl/Tk和QT.相比之下,我觉得PyQT使用起来更加方便,功能也相对丰富.这一篇用PyQT实现一个视频播放 ...

  5. python开发视频播放器_python视频播放器

    广告关闭 100GB直播流量包仅需9.9元,10TB点播流量包仅需999元,参与活动还赠移动直播SDK,短视频SDK,小程序插件等,大促100%中奖率 最近研究了python的两个gui包,tkint ...

  6. pyglet -- 视频播放器 (简单实现,效果不是太好,切换资源会卡死)(三)

    实现一个简单的视频播放器,效果不是很好.这里不多说,直接贴代码了. 1 #-*- coding:gbk -*- 2 import pyglet 3 import os 4 from pyglet.gl ...

  7. 音视频开发第一课-使用C语言开发视频播放器 650元IT外包开发全程记录

    界面设计 目标效果: 创建MFC对话框项目,或者直接使用项目模板 主要选择64位平台. 拖放控件 设置播放器区域的背景 把资源bg.bmp拷贝到项目目录的res目录下. 把bg.bmp添加当项目的资源 ...

  8. 只有你项目不到,Electron也可以开发视频播放器

    一.桌面版视频播放器 今天又发现一款强大的开源软件,electron 开发的一个可以播放国内主流视频(腾讯.爱奇艺.优酷.芒果.乐视)的播放器.而且播放视频可直接跳过广告.好的开源项目第一时间分享给大 ...

  9. 只有你想不到,Electron也可以开发视频播放器

    ## 一.桌面版视频播放器 今天又发现一款强大的开源软件,electron 开发的一个可以播放国内主流视频(腾讯.爱奇艺.优酷.芒果.乐视)的播放器.而且播放视频可直接跳过广告.好的开源项目第一时间分 ...

  10. Flash Builder 开发视频播放器客户端

    基于 spark.components.VideoDisplay 进行视频播放器开发. 通过设置VideoDisplay对象的source属性,设置数据源,实现:本地视频播放.网络视频点播.网络视频直 ...

最新文章

  1. 编写程序,子进程通过管道向父进程发出字符串ok.
  2. SpringBoot使用Gradle构建war包
  3. mysql主从复制及失败切换
  4. 淘宝大数据之路【转】
  5. 使用Nomad构建弹性基础架构: 作业生命周期
  6. 详解:设计模式之-单例设计模式
  7. js 模拟点击_爬虫js逆向之无限debugger--抖音第三方数据分析平台的坑
  8. C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Shapes)
  9. pycharm 操作的一些设置,记录下
  10. 125万像素智能相机收费站解决方案
  11. 国内第三个双机场城市新机场试飞,6月正式投用
  12. EXCEL VBA编程基础
  13. 如何保持福禄克CFP2-100-Q、OFP2-100-Q等光纤测试仪器的洁净?
  14. python快递费用计算_python调用快递鸟api实现查快递
  15. web 流程设计器探究
  16. 基于pynq的数字识别神经网络加速器设计
  17. 安利一个在线画UML图的网址
  18. 基于asp.net006电话计费管理系统
  19. 艾默生流量计传感器的调整事项
  20. 物流信息管理需要借助GPS北斗定位模块

热门文章

  1. 获取时间戳(1970年1月1日零点整至当前时间的毫秒数)
  2. 【xxljob简介】
  3. [Plant Simulation]工人开车搬运及装卸货物(Transporter的复合使用及pe函数)
  4. vs code和Dev c++(embarcadero 6.3)
  5. php __sleep __wakeup
  6. SpringBoot配置文件的分水岭——高级配置的使用
  7. 世界上最变态的测试题目(据说考FBI专用的)
  8. 在 Express中配置使用 art-template 模板引擎 --- express-art-template
  9. android百度定位失败的原因,百度定位中出现4.9E-324问题的原因和解决办法
  10. 达观打造基于AI能力的社会治理平台,助力政府管理智能化升级