HarmonyOS 鸿蒙Next video 组件自定义控制器布局问题
1、使用 stack 或其他组件把控制布局盖在 video 上方
2、调用 this.videoController.requestFullscreen(true) 导致除 video 之外的其他全部组件被隐藏 如下:
import { window } from '@kit.ArkUI'
@Entry
@Component
struct Index {
private videoController = new VideoController()
@State videoSrc: string = ""
@State videoPre: string = ""
private lastWindow: window.Window | undefined = undefined
aboutToAppear(): void {
window.getLastWindow(getContext()).then((lastWindow) => {
this.lastWindow = lastWindow
})
}
build() {
Column() {
Stack() {
Video({
controller: this.videoController,
src: this.videoSrc,
previewUri: this.videoPre
})
.controls(false)
.autoPlay(true)
Row() {
Image($r("app.media.app_icon"))
.width(40)
.height(40)
.onClick(() => {
this.lastWindow?.setPreferredOrientation(window.Orientation.LANDSCAPE)
this.videoController.requestFullscreen(true)
})
}
.width("100%")
}
.width("100%")
.height(500)
.alignContent(Alignment.BottomStart)
}
.width("100%")
.height("100%")
}
}
更多关于HarmonyOS 鸿蒙Next video 组件自定义控制器布局问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS 鸿蒙Next video 组件自定义控制器布局问题,以下提供直接解决方案:
在鸿蒙系统中,若需自定义视频组件的控制器布局,需利用鸿蒙提供的自定义布局能力。首先,确保已在XML布局文件中定义了一个能够容纳自定义控制器的容器,例如DirectionalLayout
或StackLayout
。
接着,在对应的JavaScript或TypeScript逻辑代码中,通过获取该容器的引用,动态添加或移除自定义的控制器元素,如播放/暂停按钮、进度条、音量调节等。可利用鸿蒙提供的组件API,如video
组件的controls
属性设置为false
,以隐藏默认控制器,从而完全掌控自定义控制器的显示与隐藏。
在添加自定义控制器元素时,注意为各元素绑定相应的事件监听器,如点击事件、滑动事件等,以实现播放控制、进度跳转、音量调节等功能。
若需在控制器布局中展示视频当前播放时间、总时长等信息,可通过视频组件的currentTime
和duration
属性获取,并在界面上进行动态更新。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html