鸿蒙组件学习_video组件

说明

Video组件用于播放视频文件并控制其播放状态
该组件从API Version 7开始支持。
如果播放网络视频,需要申请权限ohos.permission.INTERNET
如果是新建ArkTS页面,记得先去main_pages.json配置页面路径

子组件

不支持子组件

参数
src 视频播放源的路径,支持本地视频路径和网络路径。
    支持在resources下面的video或rawfile文件夹里放置媒体资源
    支持视频格式:mp4、mkv、webm、TS
currentProgressRate 视频播放倍速
    number取值仅支持0.75、1.0、1.25、1.75、2.0(默认1.0)
previewUri  视频未播放时的预览图片路径
controller  设置视频控制器
属性
muted   是否静音,默认值: false
autoPlay    是否自动播放,默认值: false
controls    控制视频播放的控制栏是否显示
objectFit   设置视频显示模式
loop    是否单个视频循环播放
事件
onStart()   播放时触发该事件
onPause()   暂停时触发该事件
onFinish()  播放结束时触发该事件
onError()   播放失败时触发该事件
onPrepared((duration) =>{}) 视频准备完成时触发该事件,通过duration可以获得视频时长,单位为秒(s)。
onSeeking((number) => {})   操作进度条过程时上报时间信息,单位为s。
onSeeked((number) => {})    操作进度条完成后,上报播放时间信息,单位为s。
onUpdate((number) => {})    播放进度变化时触发该事件,单位为s,更新时间间隔为250ms
onFullscreenChange((fullscreen) => {})  在全屏播放和非全屏播放状态之间切换时触发该事件, 返回值为true表示进入全屏播放状态,为false则表示非全屏播放。

一个VideoController对象可以控制一个或多个video

VideoController对象方法
    start()     开始播放
    pause()     暂停播放
    stop()      停止播放
    setCurrentTime(number) 指定视频播放的进度位置
    requestFullscreen(value) 请求全屏播放
    exitFullscreen()    退出全屏播放
练习
@Entry
@Component
struct Vedio{
  controller: VideoController = new VideoController()
  isPlay: boolean = false
  build(){
    Column(){
      Video({
        src: $rawfile('believe.mp4'),
        previewUri: $r('app.media.icon'),
        controller: this.controller,
        currentProgressRate: PlaybackSpeed.Speed_Forward_2_00_X
      })
        .width('100%')
        .height('80%')
        .onStart(() => {
          this.isPlay = true
        })
        .onPause(() => {
          this.isPlay = false
        })
        .onFinish(() => {
          this.isPlay = false
        })
        .onClick(() => {
          if(this.isPlay == false) {
            this.controller.start()
          }
          else {
            this.controller.pause()
          }
          this.isPlay = !this.isPlay
        })
      Button('退出全屏')
        .onClick(() => {
          this.controller.exitFullscreen()
        })
      Button('进入全屏')
        .onClick(() => {
          this.controller.requestFullscreen(true)
        })
    }

  }
}

相关推荐

  1. 鸿蒙组件学习_video

    2024-04-08 01:22:02       38 阅读
  2. 鸿蒙组件学习_Text

    2024-04-08 01:22:02       31 阅读
  3. 鸿蒙组件学习_Tabs

    2024-04-08 01:22:02       39 阅读
  4. 鸿蒙组件学习_Image

    2024-04-08 01:22:02       39 阅读
  5. Harmonyos系统列表组件video的使用

    2024-04-08 01:22:02       68 阅读
  6. 鸿蒙(HarmonyOS)应用开发——容器组件(List

    2024-04-08 01:22:02       66 阅读
  7. 鸿蒙(HarmonyOS)应用开发——容器组件(Tabs

    2024-04-08 01:22:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-08 01:22:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-08 01:22:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-08 01:22:02       82 阅读
  4. Python语言-面向对象

    2024-04-08 01:22:02       91 阅读

热门阅读

  1. Linux——gdb

    2024-04-08 01:22:02       39 阅读
  2. WPF —— 后台实现fromto动画实例

    2024-04-08 01:22:02       34 阅读
  3. 加密攻击

    2024-04-08 01:22:02       29 阅读
  4. DtDay1

    DtDay1

    2024-04-08 01:22:02      31 阅读
  5. 设计原则、设计模式、设计模式项目实战

    2024-04-08 01:22:02       32 阅读
  6. 蓝桥杯 第 9 场 小白入门赛 盖印章

    2024-04-08 01:22:02       31 阅读
  7. C# BitConverter

    2024-04-08 01:22:02       30 阅读
  8. Leetcode 506. 相对名次

    2024-04-08 01:22:02       40 阅读
  9. Leetcode 539. 最小时间差

    2024-04-08 01:22:02       33 阅读
  10. Docker容器的IP地址

    2024-04-08 01:22:02       185 阅读