HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放
HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放 说点题外话,由于自己目前接触鸿蒙开发较短,才疏学浅,暂时还没有能力独立开发出分布式app,所以在训练赛第二期基础上,集成了跨设备视频播放项目。原项目网址:
https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-DistributedVideo
首先看效果图:
项目共集成了三个模板工程:app启动页工程,登录页工程,跨设备视频播放工程
app启动页项目:
由于app有分布式视频播放,故向用户请求获取多设备协同权限。启动页广告图片为1024程序员日图片
设置屏幕图片代码如下:
<Image
ohos:id="$+id:loading_pic"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:above="$+id:bottom_bar"
ohos:image_src="$media:splash"
ohos:background_element="$color:image_area"/>
启动后将跳转到登录页
启动页跳转登录页代码:
private void initRedirectIntent() {
redirectIntent = new Intent();
// Set redirect destiny ability
// Put the ability you want to show after the splash screen here
Operation operation = new Intent.OperationBuilder().withDeviceId("")
.withBundleName(getBundleName())
.withAbilityName("com.example.demo.LoginAbility")
.build();
redirectIntent.setOperation(operation);
}
登录成功将跳转到跨设备视频播放工程
登录跳转代码如下:
Intent redirectIntent = new Intent();
// Set redirect destiny ability
// Put the ability you want to show after the splash screen here
Operation operation = new Intent.OperationBuilder().withDeviceId("")
.withBundleName(getBundleName())
.withAbilityName("com.example.demo.VideoAbility")
.build();
redirectIntent.setOperation(operation);
startAbility(redirectIntent);
由于跨设备视频播放项目素材不符合主题内容,所以自己找了一些素材,移植上去,视频为华为开发者大会宣传视频(来源:微博)。
图片替换代码:
```csharp
static {
ADVERTISEMENT_MOS.add(new AdvertisementMo(ResourceTable.Media_harmonyOS2021, "鸿蒙开发者大会"));
ADVERTISEMENT_MOS.add(new AdvertisementMo(ResourceTable.Media_HDC01, "HDC-Cloud"));
ADVERTISEMENT_MOS.add(new AdvertisementMo(ResourceTable.Media_team, "漫天星火"));
VIDEO_LIST_MO_LIST.add(new VideoListMo(ResourceTable.Media_hdc,
"HDC-Cloud", "waterfall"));
VIDEO_LIST_MO_LIST.add(new VideoListMo(ResourceTable.Media_HDCCloud, "HDC-Cloud", "cute"));
VIDEO_LIST_MO_LIST.add(new VideoListMo(ResourceTable.Media_hdcShop, "HDC-Cloud", "drone"));
}
跨设备视频播放流程如下:
点击左边播放,暂停,前进,后退等按钮即可控制右边设备。
应用程序布局代码:
<DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical">
<DirectionalLayout ohos:height="match_content" ohos:width="match_parent" ohos:orientation="vertical" >
<!--滚动的视频图片-->
<DependentLayout ohos:id="$+id:video_advertisement_container_view" ohos:width="match_parent" ohos:left_margin="20vp" ohos:height="175vp" ohos:top_margin="20vp" ohos:right_margin="12vp" >
<PageSlider ohos:id="$+id:video_advertisement_viewpager" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="horizontal"/>
<PageSliderIndicator ohos:id="$+id:video_advertisement_indicator" ohos:right_margin="8vp" ohos:bottom_margin="7vp" ohos:width="match_content" ohos:height="match_content" ohos:align_parent_bottom="true" ohos:align_parent_right="true" /> </DependentLayout>
<!--即将上映-->
<DirectionalLayout ohos:width="match_parent" ohos:height="22vp" ohos:top_margin="12vp" ohos:left_margin="24vp" ohos:right_margin="12vp" ohos:orientation="horizontal">
<Text ohos:id="$+id:video_play_title" ohos:text="$string:list_title" ohos:text_size="16fp" ohos:text_color="#ff000000" ohos:text_alignment="horizontal_center" ohos:layout_alignment="vertical_center" ohos:width="match_content" ohos:height="match_content" />
<Image ohos:left_margin="6vp" ohos:width="13vp" ohos:height="13vp" ohos:layout_alignment="vertical_center" ohos:image_src="$media:ic_next"/>
</DirectionalLayout>
<!--可横向滑动的视频图片-->
<DirectionalLayout ohos:width="match_parent" ohos:height="500vp" ohos:orientation="vertical">
<ListContainer ohos:id="$+id:video_list_play_view" ohos:width="match_parent" ohos:height="match_content" ohos:orientation="horizontal" ohos:left_margin="18vp" ohos:top_margin="12vp" >
</ListContainer>
</DirectionalLayout>
</DirectionalLayout>
</DirectionalLayout>
</DirectionalLayout>
整体就是这样,跨设备项目讲解网站:
https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-DistributedVideo
还望大佬们多多点评!!!
重在参与!!!
更多关于HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对帖子标题“HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放”的问题,以下是专业且简洁的回答:
在HarmonyOS鸿蒙系统中集成跨设备视频播放,主要依赖于鸿蒙系统的分布式能力。开发者需要利用鸿蒙提供的API接口,实现视频在不同设备间的无缝流转和同步播放。
具体实现步骤通常包括:
-
设备发现与连接:首先,确保参与视频播放的设备处于同一鸿蒙生态网络中,并能相互发现。这通常通过鸿蒙的分布式网络框架实现。
-
视频流转控制:开发者需要编写代码,控制视频内容在不同设备间的流转。鸿蒙系统提供了相应的API,用于启动、暂停、继续以及停止视频流转。
-
同步播放:为了确保跨设备视频播放的同步性,开发者需实现播放进度、音量等参数的同步控制。鸿蒙的分布式媒体框架可能提供此类同步机制。
-
UI适配与优化:针对不同屏幕尺寸和分辨率的设备,开发者需对视频播放界面进行适配,以确保用户体验的一致性。
完成上述步骤后,开发者即可在HarmonyOS鸿蒙系统中实现跨设备视频播放功能。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html