当前位置:   article > 正文

鸿蒙组件学习_video组件

鸿蒙组件学习_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  设置视频控制器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
属性
muted   是否静音,默认值: false
autoPlay    是否自动播放,默认值: false
controls    控制视频播放的控制栏是否显示
objectFit   设置视频显示模式
loop    是否单个视频循环播放
  • 1
  • 2
  • 3
  • 4
  • 5
事件
onStart()   播放时触发该事件
onPause()   暂停时触发该事件
onFinish()  播放结束时触发该事件
onError()   播放失败时触发该事件
onPrepared((duration) =>{}) 视频准备完成时触发该事件,通过duration可以获得视频时长,单位为秒(s)。
onSeeking((number) => {})   操作进度条过程时上报时间信息,单位为s。
onSeeked((number) => {})    操作进度条完成后,上报播放时间信息,单位为s。
onUpdate((number) => {})    播放进度变化时触发该事件,单位为s,更新时间间隔为250ms
onFullscreenChange((fullscreen) => {})  在全屏播放和非全屏播放状态之间切换时触发该事件, 返回值为true表示进入全屏播放状态,为false则表示非全屏播放。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

VideoController对象方法
    start()     开始播放
    pause()     暂停播放
    stop()      停止播放
    setCurrentTime(number) 指定视频播放的进度位置
    requestFullscreen(value) 请求全屏播放
    exitFullscreen()    退出全屏播放
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
练习
@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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/580424
推荐阅读
相关标签
  

闽ICP备14008679号