基于应用接续实现分布式视频播放器功能
·
HarmonyOS_Samples/DistributedViewShow
介绍
基于ArkTS扩展的声明式开发范式编程语言编写的一个分布式视频播放器,主要包括一个直播视频播放界面,实现视频播放时可以从一台设备迁移到另一台设备继续运行,来选择更合适的设备继续执行播放功能以及PAD视频播放时协同调用手机编辑发送弹幕功能。
效果预览

使用说明
- 准备手机端与平板端两台设备,并且登录同一华为账号,双端设备打开WI-FI和蓝牙,建议双端设备接入同一个局域网,可提升数据传输的速度
- 双端设备均安装此应用
- 滑动浏览手机端视频,打开平板端应用
- 点击平板端手机输入按钮,调起手机端输入内容,提交后平板端查看
工程目录
├──entry/src/main/ets // 代码区
│ ├──common
│ │ └──Constants.ets // 公共常量类
│ ├──entryability
│ │ └──EntryAbility.ets // 程序入口类
│ ├──inputability
│ │ └──InoutAbility.ets // 手机文本编辑入口类
│ ├──model
│ │ ├──LiveData.ets // 直播视频相关数据
│ │ └──LiveDataModel.ets // 直播视频类
│ ├──pages
│ │ ├──CommentPage.ets // 弹幕显示界面
│ │ ├──InputPage.ets // 手机评论编辑界面
│ │ └──LivePage.ets // 视频播放界面
│ └──utils
│ ├──Logger.ets // 日志类
│ └──WindowUtil.ets // 界面控制类
└──entry/src/main/resource // 应用静态资源目录
具体实现
- 在实现协同接口前,应用需要申请协同所需的访问控制权ohos.permission.DISTRIBUTED_DATASYNC。 在requestPermissions字段中增加权限声明ohos.permission.DISTRIBUTED_DATASYNC
- 同时需要在应用首次启动时弹窗向用户申请授权,在用户手动允许授权后,应用才会真正获取相应权限,从而成功访问操作目标对象。 打开“entry > src > entryability > EntryAbility.ets” 文件,在EntryAbility类中实现以下函数,从而在调用时动态弹窗向用户申请权限。
- 获取目标设备的设备ID。
- 在发起端设置目标组件参数,调用startAbilityForResult()接口启动目标端UIAbility,异步回调中的data用于接收目标端UIAbility停止自身后返回给调用方UIAbility的信息。
- 在目标端UIAbility任务完成后,调用terminateSelfWithResult()方法,将数据返回给发起端的UIAbility。
- 发起端UIAbility接收到目标端UIAbility返回的信息,对其进行处理。
相关权限
ohos.permission.DISTRIBUTED_DATASYNC
约束与限制
-
本示例仅支持标准系统上运行,支持设备:华为手机。
-
HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。
-
DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
-
HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。
更多推荐

所有评论(0)