在鸿蒙开发中如何全屏播放一个视频?

在鸿蒙开发中如何全屏播放一个视频?有一些宽视频,用户需要点击进入全屏播放状态。
video组件:调用this.controller.requestFullscreen(true)后,可以实现全屏,但是通过Stack容器,位于Video层级上方的自定义的UI 控制器不显示了,请问应该如何实现video 全屏情况下,屏幕顶部和底部 显示自定义的UI。AVPlayer组件:没有进入全屏的api暴露出来。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 724
1 个回答

avplayer只提供播放能力,没有全屏的api。
Video组件全屏的原理是,新建一个Video节点,设置为窗口大小,放置到根节点,复用原来Video的surface。这可以通过ide的ArkUI Inspector观察Video组件全屏前后页面节点的变化发现。这个原理在ets侧是不能模仿实现的。
想要做到截图中的效果,总的来说Video组件自带的全屏就不适用了。需要自定义实现全屏。目前全屏的方案有两种
1:直接调整当前video组件高度宽度占据全部宽高,通过显隐控制其他组件,需要自行把控好页面排版,再通过设置安全区域实现屏幕顶部和底部的自定义。
2:重新打开一个窗口,类似于画中画,总体与第一种方案差不多,只是不影响其他组件排版,但是会有重新加载视屏资源的过程。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题