HarmonyOS应用开发-ets-video组件案例

说明:
该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

接口
Video(value: {src?: string, currentProgressRate?: number | string, previewUri?: string, controller?: VideoController})

示例代码:

// @ts-nocheck
@Entry
@Component
struct VideoExample {
  @State src: Resource = $rawfile('video1.mp4')
  @State currentProgressRate: number = 1
  @State muted: boolean = false
  @State autoPlay: boolean = false
  @State controls: boolean = true
  @State startStaus: boolean = true
  myVideoController: VideoController = new VideoController()

  build() {
    Column({ space: 10 }) {
      Video({
        src: this.src,
        previewUri: '../../../../resources/rawfile/video1.mp4',
        currentProgressRate: this.currentProgressRate,
        controller: this.myVideoController
      })
        .muted(this.muted)
        .autoPlay(this.autoPlay)
        .controls(this.controls)
        .objectFit(ImageFit.Contain)
        .loop(true)
        .width(320)
        .height(200)
        .onStart(() => {
          console.info('onStart')
        })
        .onPause(() => {
          console.info('onPause')
        })
        .onFinish(() => {
          console.info('onFinish')
        })
        .onError(() => {
          console.info('onError')
        })
        .onFullscreenChange((e) => {
          console.info('onFullscreenChange:' + e.fullscreen)
        })
        .onPrepared((e) => {
          console.info('onPrepared:' + e.duration)
        })
        .onSeeking((e) => {
          console.info('onSeeking' + e.time)
        })
        .onSeeked((e) => {
          console.info('onSeeked' + e.time)
        })
        .onUpdate((e) => {
          console.info('onUpdate' + e.time)
        })

      Row() {
        Flex({ wrap: FlexWrap.Wrap, justifyContent: FlexAlign.SpaceAround, alignItems:ItemAlign.Start }) {
          Button("src")
            .onClick(() => {
              if (this.src == $rawfile('video1.mp4')) {
                this.src = $rawfile('video2.mp4')
              } else {
                this.src = $rawfile('video1.mp4')
              }
            })
            .margin({bottom:10})
          Button("controls")
            .onClick(() => {
              this.controls = !this.controls
            })
          Button("play")
            .onClick(() => {
              this.myVideoController.start()
            })
          Button("pause")
            .onClick(() => {
              this.myVideoController.pause()
            })
          Button("stop")
            .onClick(() => {
              this.myVideoController.stop()
            })
            .margin({bottom:10})
          Button("requestFullscreen")
            .onClick(() => {
              this.myVideoController.requestFullscreen(true)
            })
          Button("exitFullscreen")
            .onClick(() => {
              this.myVideoController.exitFullscreen()
            })
          Button("setCurrentTime")
            .onClick(() => {
              this.myVideoController.setCurrentTime(9)
            })
        }.padding(15)
      }
    }.width('100%')
  }
}

进入华为专区,解锁更多内容 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值