基于HarmonyOS鸿蒙Next AvPlayer实现视频组件全屏切换咨询

基于HarmonyOS鸿蒙Next AvPlayer实现视频组件全屏切换咨询 目前是通过控制window.Orientation旋转来实现全屏,但是当视频组件是在列表中,而同时列表处在一个页签栏中,页签上部是其他内容的UI展示,下部是个主底部导航栏的显示。大致结构是

Column(){
// 顶部UI交互
// 频道页签栏目 -> 其中的页签 包含list -> 列表项包含视频播放
// 底部主导航栏
}

当页面旋转后,包含视频的列表项会被顶部UI和底部导航栏遮挡。想问一下,有无方法可以提升视频播放的列表项的UI层级使其和对应的controller置顶在最上层显示,在旋转回去的时候UI层级再修改会原先位置。或者这种场景时,列表播放器的全屏策略在鸿蒙系统如何实现?


更多关于基于HarmonyOS鸿蒙Next AvPlayer实现视频组件全屏切换咨询的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

通过状态管理控制顶部UI和底部导航栏的显示或隐藏。

列表播放器的全屏策略在鸿蒙系统 如何实现?

建议使用

https://gitee.com/harmonyos-cases/cases/blob/master/CommonAppDevelopment/feature/mediafullscreen/README.md

更多关于基于HarmonyOS鸿蒙Next AvPlayer实现视频组件全屏切换咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用AvPlayer实现视频组件的全屏切换可以通过调用AvPlayer的API和布局管理来完成。首先,确保你已经导入了ohos.media.playerohos.agp.components相关的包。

  1. 初始化AvPlayer:首先创建并初始化AvPlayer实例,设置视频源并准备播放。

  2. 创建视频显示组件:使用SurfaceProvider或SurfaceView来显示视频内容。

  3. 全屏切换逻辑:

    • 进入全屏:在进入全屏时,调整视频显示组件的布局参数,使其占据整个屏幕。可以通过Component的setLayoutParams方法设置MatchParent的宽高。
    • 退出全屏:退出全屏时,恢复视频显示组件的原始布局参数。
  4. 监听屏幕方向变化:通过监听设备的方向变化,自动切换全屏状态。可以使用Configuration类来检测设备方向的变化。

  5. 处理播放器状态:在全屏切换过程中,确保播放器的状态(如播放、暂停、停止)保持一致。

  6. 释放资源:在退出全屏或销毁组件时,确保释放AvPlayer和相关的资源。

通过以上步骤,可以在HarmonyOS鸿蒙Next中实现视频组件的全屏切换功能。

在HarmonyOS鸿蒙Next中,使用AvPlayer实现视频组件全屏切换可以通过以下步骤进行:

  1. 初始化AvPlayer:创建AvPlayer实例并设置视频源。
  2. 创建SurfaceProvider:用于渲染视频画面。
  3. 设置全屏按钮事件:在UI中添加全屏按钮,并为其设置点击事件。
  4. 全屏切换逻辑:在按钮点击事件中,调整SurfaceProvider的布局参数,使其覆盖整个屏幕,并隐藏其他UI元素。
  5. 退出全屏:再次点击按钮时,恢复SurfaceProvider的原始布局参数,并显示其他UI元素。

通过这种方式,可以轻松实现视频组件的全屏切换功能。

回到顶部