HarmonyOS 鸿蒙Next Video控件隐藏操作栏

HarmonyOS 鸿蒙Next Video控件隐藏操作栏

我方工程现在有Video控件用来播放视频。
现在想要隐藏Video控件自带的 视频操作栏(包括 暂停按钮,视频进度 和 最大化按钮)。
请问是否可以实现

2 回复

可以通过设置属性controls为false关闭默认控制栏。设置Video组件的controller。

通过ArkTS实现自定义的控制栏,并通VideoController控制视频播放。

demo示例:

[@Entry](/user/Entry)

[@Component](/user/Component)

struct VideoCreateComponent {

  [@State](/user/State) videoSrc: Resource = $rawfile('test.mp4')

  [@State](/user/State) previewUri: Resource = $r('app.media.ic_cart_focus')

  [@State](/user/State) curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X

  [@State](/user/State) isAutoPlay: boolean = false

  [@State](/user/State) showControls: boolean = true

  controller: VideoController = new VideoController()

  build() {

    Column() {

      Video({

        src: this.videoSrc,

        previewUri: this.previewUri,

        currentProgressRate: this.curRate,

        controller: this.controller

      }).width('100%').height(600)

        .autoPlay(this.isAutoPlay)

        .controls(this.showControls)

        .onStart(() => {

          console.info('onStart')

        })

        .onPause(() => {

          console.info('onPause')

        })

        .onFinish(() => {

          console.info('onFinish')

        })

        .onError(() => {

          console.info('onError')

        })

        .onPrepared((e) => {

          console.info('onPrepared is ' + e.duration)

        })

        .onSeeking((e) => {

          console.info('onSeeking is ' + e.time)

        })

        .onSeeked((e) => {

          console.info('onSeeked is ' + e.time)

        })

        .onUpdate((e) => {

          console.info('onUpdate is ' + e.time)

        })

      Row() {

        Button('src').onClick(() => {

          this.videoSrc = $rawfile('test.mp4') // 切换视频源

        }).margin(5)

        Button('previewUri').onClick(() => {

          this.previewUri = $r('app.media.scenery') // 切换视频预览海报

        }).margin(5)

        Button('controls').onClick(() => {

          this.showControls = !this.showControls // 切换是否显示视频控制栏

        }).margin(5)

      }

      Row() {

        Button('start').onClick(() => {

          this.controller.start() // 开始播放

        }).margin(5)

        Button('pause').onClick(() => {

          this.controller.pause() // 暂停播放

        }).margin(5)

        Button('stop').onClick(() => {

          this.controller.stop() // 结束播放

        }).margin(5)

        Button('setTime').onClick(() => {

          this.controller.setCurrentTime(10, SeekMode.Accurate) // 精准跳转到视频的10s位置

        }).margin(5)

      }

      Row() {

        Button('rate 0.75').onClick(() => {

          this.curRate = PlaybackSpeed.Speed_Forward_0_75_X // 0.75倍速播放

        }).margin(5)

        Button('rate 1').onClick(() => {

          this.curRate = PlaybackSpeed.Speed_Forward_1_00_X // 原倍速播放

        }).margin(5)

        Button('rate 2').onClick(() => {

          this.curRate = PlaybackSpeed.Speed_Forward_2_00_X // 2倍速播放

        }).margin(5)

      }

    }

  }}

更多关于HarmonyOS 鸿蒙Next Video控件隐藏操作栏的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,Next Video控件隐藏操作栏可以通过以下方式实现:

  1. 直接设置属性

    • 查找Next Video控件的属性设置选项,通常可以在控件的属性面板或配置文件中完成。
    • 查找“操作栏显示”或类似的属性,并将其设置为“隐藏”或“不显示”。
  2. 代码控制

    • 如果使用代码进行界面布局,可以通过API控制操作栏的显示状态。
    • 在控件初始化或显示时,调用相关的隐藏操作栏API。
    • 例如,使用setUiOptions方法并传入相应的UI选项标志来隐藏操作栏(注意:具体方法名及参数需参考鸿蒙API文档)。
  3. 样式文件

    • 某些情况下,操作栏的显示状态可以在样式文件中定义。
    • 查找并编辑样式文件,将操作栏相关的样式属性设置为隐藏。
  4. 布局文件

    • 在布局文件中,通过调整控件的布局参数或嵌套关系,可能可以间接实现操作栏的隐藏。
    • 例如,通过调整布局容器的边距、高度等属性,使操作栏区域不可见。

请注意,具体操作步骤和API调用可能因鸿蒙系统的版本和控件的实现方式而异。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部