相关问题
视频播放Player组件如何加速播放或者快进播放
7412浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用视频控制器自定义视频播放控制?
103浏览 • 1回复 待解决
HarmonyOS 捕获屏幕视频流
34浏览 • 1回复 待解决
关于屏幕安全区域的问题咨询
335浏览 • 1回复 待解决
HarmonyOS 如何获取屏幕下方手势响应区域AvoidArea的高度
386浏览 • 1回复 待解决
HarmonyOS 视频组件无法扩展其安全区域
320浏览 • 1回复 待解决
HarmonyOS项目架构参考文档Demo或视频
341浏览 • 2回复 待解决
如何通过代码控制屏幕的横竖屏切换?
338浏览 • 1回复 待解决
HarmonyOS 如何获取屏幕顶部和底部安全区域的高度
1070浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何控制鸿蒙应用窗口的屏幕亮度?
68浏览 • 1回复 待解决
VideoController如何控制子组件中的视频播放
1385浏览 • 2回复 待解决
有没有获取网络视频封面或截图的方法?
4337浏览 • 1回复 待解决
自定义popup在屏幕下方会有一块无法遮盖的区域
244浏览 • 1回复 待解决
HarmonyOS 如何获取屏幕状态栏跟底部安全区域的高度?
526浏览 • 1回复 待解决
HarmonyOS 使用 expandSafeArea 控制组件扩展到安全区域,没有生效
628浏览 • 1回复 待解决
视频列表滑动中,如果刚完整进入可视区域,则进行播放,其他不在可视区域的停止播放
1848浏览 • 1回复 待解决
HarmonyOS VideoDecoder无法找到输入视频文件或数据的API
172浏览 • 1回复 待解决
HarmonyOS List每次更新会把缓存的节点全部更新(包括屏幕不可见区域)
31浏览 • 1回复 待解决
请问如何获取屏幕底部安全区域的高度?目前系统只提供了获取顶部安全区域高度的API
2410浏览 • 1回复 待解决
HarmonyOS 进入视频类作品时,屏幕会缩动一下然后再播放视频
339浏览 • 1回复 待解决
#鸿蒙通关秘籍#怎样使用自定义控制器控制鸿蒙视频组件的播放状态?
120浏览 • 1回复 待解决
HarmonyOS 应用往图库里,新建指定目录,在该目录中,新增或删除指定图片或视频
190浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现视频卡片和列表区域的联动滚动?
125浏览 • 1回复 待解决
HarmonyOS 组件包含margin或padding时,宽度设置为100%会超出屏幕
781浏览 • 1回复 待解决
应用开发中经常需要给同一个组件划分不同的触摸热区,并且不同热区触发的操作也不同,比如阅读应用通常包含左右两个触摸热区,用户触摸左侧触发向后翻页,触摸右侧触发向前翻页;同样的,视频应用中,长按视频播放器的左侧触发快退播放,长按右侧触发快进播放等等。 当前OpenHarmony提供的热区设置属性(responseRegion)只能在不同的触摸热区中触发相同的事件,那么如何实现不同热区不同事件呢,本例即以上述视频播放场景为例进行说明。
效果说明
开始时视频以正常速度播放,长按播放器右侧触发快进播放,长按播放器左侧触发快退播放。
环境要求
本例基于以下环境开发,开发者也可以基于其他适配的版本进行开发:
l IDE: DevEco Studio 4.1 Release
l SDK: Ohos_sdk_public 4.0.10.13 (API Version 10 Release)
实现思路
几乎组件的所有触摸事件都会返回event,通过返回的event可以获取到触摸点的坐标位置,那么就可以根据坐标位置为不同的组件区域添加不同的交互动作。如图:假设有一个长度为200vp的组件,我们希望点击组件的左侧时触发事件A,点击组件的右侧时触发事件B,那么就可以通过触摸点的坐标来判断,当触摸点的x坐标<=100时,触发事件A,反之触发事件B。
如何为组件的不同触摸区域添加不同交互动作(通过event坐标实现)
本例即采用上述思路为Video组件的左右两侧添加不同的交互动作。从而实现长按视频播放器的左侧触发后退播放,长按右侧触发快进播放。
开发步骤
本例详细开发步骤如下,开发步骤中仅展示相关步骤代码,全量代码请参考完整代码章节的内容。
通过Video组件创建视频播放器,并添加触摸手势,通过触摸控制视频的播放、暂停。
为Video组件添加长按手势,通过长按手势触发播放的快退和快进动作。由于触摸手势和长按手势需要互斥,即一次只能触发一种手势,所以通过GestureGroup来实现手势的互斥。
补充长按手势中的业务逻辑:通过event获取到触摸点的x坐标:localX,当localX>=200时,说明触摸点在组件的右侧,触发快进播放;当localX<200时,说明触摸点在左侧,触发快退播放。当触摸停止时,回归正常播放速度。
完整代码
本例完整代码如下:
说明:
本例中使用的视频等资源需要替换为开发者自己的资源。