HarmonyOS 鸿蒙ArkUI 视频全屏时如何设置横向或竖向?全屏后如何添加控制相关UI?

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙ArkUI 视频全屏时如何设置横向或竖向?全屏后如何添加控制相关UI?

如题,我使用的是Video组件,在调用this.controller.requestFullscreen(true)后,可以实现全屏,但目前有两个问题:

第一个就是如果本身是宽一些的视频,需要横屏播放,但是只是调用this.controller.requestFullscreen(true),并没有横屏播放,而是竖屏播放,画面不完整。要如何控制全屏时的朝向?

第二个就是全屏后,没有看到播放控制相关的UI。之前在没有全屏时,写了相关的播放控制UI,通过Stack容器,位于Video层级上方,但是在全屏之后,就看不到这些UI了。要如何实现在全屏时的播放控制相关的UI?

请大佬解惑,谢谢!



关于HarmonyOS 鸿蒙ArkUI 视频全屏时如何设置横向或竖向?全屏后如何添加控制相关UI?的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

22 回复

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

这大半年过去了,还没解决吗,我也遇到同样的问题,另外Slider的Image滑块也不会跟随进度滑动,倍速设置完后播放第二遍也不对,感觉很多组件都根本没办法用。

HarmonyOS的流畅动画和过渡效果让操作更加顺畅,体验极佳。

要用监听事件监听播放进度更新,然后双向绑定到Slider的value上就能实现进度条效果了,拖动效果也是一样的

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

大佬解决了吗?

有啥好的方案吗?

没有,使用XComponent切换全屏时,画面显示异常,不知道问题出在哪里

XComponent怎么实现切换全屏,麻烦楼主告知,感谢

不知道怎么主动触发横竖屏切换... 

通过 WindowStage获取到window对象后,调用setPreferredOrientation方法,下面是我写的一个方法,里面的cacheWindowStage就是一个WindowStage,可以在onWindowStageCreate里面获得

async setOrientation(orientation: window.Orientation) { let window = await this.cacheWindowStage.getMainWindow() window.setPreferredOrientation(orientation) }

嗯嗯,谢谢,我后来也找到了

楼主,解决了嘛

没有,我在使用AVPlayer去做,方案是点击一个按钮时修改XComponent的宽和高,并通过AVPlayer获得的宽高比来判断是不是需要设置朝向,但是结果是全屏时视频画面显示异常,位置和比例都不对,不知道问题在哪

位置是XComponent相对父控件的位置可以用一个row包裹,比例也是XComponent的宽高和父控件的宽高比例设置好就行了

可以试试设置页面屏幕旋转,然后同时设置视频全屏播放,应该是可以实现你这个功能

屏幕旋转我设置了,但实际上,横屏和竖屏是不一样的,竖屏不需要旋转,所以就需要知道视频的尺寸比例,然后就是UI操作界面,这些在全屏的时候,Video这个组件的不能定制,自己写的组件会被藏在视频下面,不会显示,这些问题都需要解决

那也简单,可以用stack实现嵌套,代码如下: Stack({ alignContent: Alignment.Bottom }) { Video({ src: this.videoSrc }).width(‘100%’).height(‘100%’) Stack({ alignContent: Alignment.Bottom }) { Button(‘按钮’).width(‘80%’).height(35) } }

Stack怎么使用我是清楚的,调用this.controller.requestFullscreen(true)后,你自己写的组件是看不到的

你可以使用AVPlayer来实现,毕竟Video组件只是封装了视频播放的基础能力,但相对扩展能力较弱

文档地址

https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/avplayer-avrecorder-overview-0000001454485268-V3

如果Video组件切换全屏时,无法正常显示,这个功能不能算完整吧,这样怎么能作为一个组件给开发者使用呢?

Video组件有没有办法做到吗?我已经使用Video组件做好了其他功能,只差全屏切换

video组件只是提供了最基本的视频播放的功能

回到顶部