鸿蒙(HarmonyOS)应用开发——viedo组件

news/2024/7/21 8:30:35 标签: harmonyos, 华为

video 组件

使用video组件 播放视频

Video(value: {src?: string | Resource, currentProgressRate?: number | string |PlaybackSpeed, previewUri?: string |PixelMap | Resource, controller?: VideoController})
属性说明
src视频播放源的路径
currentProgressRate表示视频播放倍速
previewUri视频未播放时的预览图片路径
controller视频控制器

使用网络地址时,如https,需要注意的是需要在module.json5文件中申请网络权限

在使用本地资源播放时,当使用本地视频地址我们可以使用媒体库管理模块medialibrary来查询公共媒体库中的视频文件

import mediaLibrary from '@ohos.multimedia.mediaLibrary';

async queryMediaVideo() {
  let option = {
    // 根据媒体类型检索
    selections: mediaLibrary.FileKey.MEDIA_TYPE + '=?',
    // 媒体类型为视频
    selectionArgs: [mediaLibrary.MediaType.VIDEO.toString()]
  };
  let media = mediaLibrary.getMediaLibrary(getContext(this));
  // 获取资源文件
  const fetchFileResult = await media.getFileAssets(option);
  // 以获取的第一个文件为例获取视频地址
  let fileAsset = await fetchFileResult.getFirstObject();
  this.source = fileAsset.uri
}

视频支持的规格是:mp4、mkv、webm、TS。

属性

属性
muted
autoPlay
controls
objectFit
loop
 Video({
        controller: this.controller
      })
        .controls(false) //不显示控制栏 
        .autoPlay(false) // 手动点击播放 
        .loop(false) // 关闭循环播放 

muted

是否静音,默认值:false

autoPlay

是否自动播放。默认值:false

controls

控制视频播放的控制栏是否显示。默认值:true

objectFit

设置视频显示模式。默认值:Cover
objectFit 中视频显示模式包括Contain、Cover、Auto、Fill、ScaleDown、None 6种模式

loop

是否单个视频循环播放。默认值:false

事件

事件
onStart
onPause
onFinish
onError
onPrepared
onSeeking
onSeeked
onUpdate
onFullscreenChange
Video({ ... })
  .onUpdate((event) => {
    this.currentTime = event.time;
    this.currentStringTime = changeSliderTime(this.currentTime); //更新事件 
  })
  .onPrepared((event) => {
    prepared.call(this, event); //准备事件 
  })
  .onError(() => {
    prompt.showToast({
      duration: COMMON_NUM_DURATION, //播放失败事件 
      message: MESSAGE
    });
  ...
  })

onStart

播放时触发该事件。

onStart(event:() => void)

onPause

暂停时触发该事件。

onPause(event:() => void)

onFinish

播放结束时触发该事件。

onFinish(event:() => void)

onError

播放失败时触发该事件。

onError(event:() => void)

onPrepared

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

onPrepared(callback:(event?: { duration: number }) => void)

onSeeking

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

onSeeking(callback:(event?: { time: number }) => void)

onSeeked

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

onSeeked(callback:(event?: { time: number }) => void)

onUpdate

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

onUpdate(callback:(event?: { time: number }) => void)

onFullscreenChange

在全屏播放与非全屏播放状态之间切换时触发该事件。

onFullscreenChange(callback:(event?: { fullscreen: boolean }) => void)

http://www.niftyadmin.cn/n/5237815.html

相关文章

机器视觉中的图像增强与对比度调整技术

在机器视觉中,图像增强与对比度调整技术是常用的方法,旨在改善图像的质量和视觉效果,或将图像转换成更适合人眼观察或机器分析识别的形式。 图像增强技术可以针对给定图像的应用场合,有目的地强调图像的整体或局部特性&#xff0…

JS 的二进制家族三

Base64: Base64 是一种数据编码方式,基于 64 个可打印字符来表示二进制数据,将二进制数据转换为可打印的 ASCII 字符串。所谓 Base64,就是说选出 64 个字符作为一个基本字符集,然后,其他所有符号都转换成这…

Linux基础操作一:连接Linux

1、连接方式 1.1、SSH连接 SSH是Secure Shell的缩写,用于加密远程连接和文件传输的协议。可以使用SSH连接到远程Linux服务器以及在本地访问Linux计算机。SSH连接可以用于执行命令或者上传或下载文件。 – 在Linux命令行中使用SSH连接:可以使用命令ssh…

vue项目配置多个代理

在本地.env文件配置本地/测试/预发/正式 路径: 在vue.config.js 里面配置: module.exports defineConfig({transpileDependencies: false,lintOnSave: false,outputDir: process.env.VUE_APP_DIST,publicPath: /,css: {loaderOptions: {postcss: {// p…

深入微服务架构 | 微服务与k8s架构解读

微服务项目架构解读 ① 什么是微服务? 微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。 微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说&…

Vue练习 v-model 指令在状态和表单输入之间创建双向绑定

效果&#xff1a; <template><h2>Text Input</h2><input v-model"text"> {{ text }}<h2>Checkbox</h2><input type"checkbox" id"checkbox" v-model"checked"><label for"checkbox…

vue2-router

1.基础 1.1.安装 npm install vue-router3.6.5 1.2.引入 import VueRouter from "vue-router" 1.3.注册 Vue.use(VueRouter) 1.4.创建 const router new VueRouter({routes: [{path:/page1, page1},{path:/page2, page2}]} ) 1.5.引用 new Vue({render: h >…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及源码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及原理图 链接&#xff1a;https://pan.baidu.com/s/1xm8mLotLBvOULQlg76ca7g?pwdp0mx 提取码&#xff1a;p0mx