#星光计划1.0# HarmonyOS 分布式之仿抖音视频(JS) 原创 精华
作者:陈建朋
简介
之前大家看过了Java版的【#星光计划1.0# HarmonyOS 分布式之仿抖音应用】,现在讲讲JS如何实现分布式仿抖音应用,通过JS方式开发视频播放,分布式设备迁移,评论,通过Java和js交互,获取设备信息,选择设备信息做分布式迁移。
- 功能:分布式迁移到不同设备,视频进行评论,播放视频,可以像抖音一样切换视频,可以点赞,分享等操作。
- 开发版本:sdk6,DevEco Studio3.0 Beta1
效果演示
主要代码
1.视频播放
鸿蒙js中有专门【video】的组件,并且非常完善,可以直接使用
js 代码中视频资源
2.仿抖音视频切换
有关视频切换的开发 js中也提供了对应的组件【swiper】,可以直接使用来进行视频切换
3.评论功能添加
评论功能使用了鸿蒙js中了两个组件 【list】(负责列表展示) 和 【input】(负责信息发送),可参见有关文档。
评论功能有两部分 评论列表和评论发送输入框。
功能实现逻辑:
4.js和Java交互获取设备信息
在实现分布式设备迁移的时候 查找js没有找到获取设备信息的有关接口,所以考虑通过js和Java相互调用实现。
通过jsFA 调用 Java PA机制,实现数据的获取和传递。
js端实现
重点:
Ability类型,对应PA端不同的实现方式:
0:Ability 1:Internal Ability
syncOption PA侧请求消息处理同步/异步选项
0:同步方式,默认方式。 1:异步方式。
Java端实现
Java 端需要创建一个 ability 服务 继承 AceInternalAbility 具体是使用哪种类型 看上面的解释。
创建后需要注册,比如我创建的是 InternalAbility 这样注册: DeviceInternalAbility.register(this);
js调用后会进入 Java的 onRemoteRequest 函数进行数据解析和组织,然后通过接口:
remoteReply.sendRequest(0, responseData, MessageParcel.obtain(), new MessageOption());
将需要的结果回传给 js做界面展示和操作。
获取设备信息:
List<DeviceInfo> deviceInfos = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE);
5.分布式迁移
鸿蒙中分布式迁移 真的是做到了强大,在js中只需要四个函数就能完成 分布式迁移。
迁移:
上面的四个有关函数 设置好后 执行 下面的接口就能实现 分布式迁移了。
continueVideoAbility: async function () {
let conti = await FeatureAbility.continueAbility();
}
6.权限
需要加上 需要的权限:
源码地址【 分布式仿抖音视频】
更多原创内容请关注:开鸿 HarmonyOS 学院
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
大佬,图挂了,能补下吗?
好的