HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放

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

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

1 回复

更多关于HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next #挑战赛第三期# 集成跨设备视频播放”的问题,以下是专业且简洁的回答:

在HarmonyOS鸿蒙系统中集成跨设备视频播放,主要依赖于鸿蒙系统的分布式能力。开发者需要利用鸿蒙提供的API接口,实现视频在不同设备间的无缝流转和同步播放。

具体实现步骤通常包括:

  1. 设备发现与连接:首先,确保参与视频播放的设备处于同一鸿蒙生态网络中,并能相互发现。这通常通过鸿蒙的分布式网络框架实现。

  2. 视频流转控制:开发者需要编写代码,控制视频内容在不同设备间的流转。鸿蒙系统提供了相应的API,用于启动、暂停、继续以及停止视频流转。

  3. 同步播放:为了确保跨设备视频播放的同步性,开发者需实现播放进度、音量等参数的同步控制。鸿蒙的分布式媒体框架可能提供此类同步机制。

  4. UI适配与优化:针对不同屏幕尺寸和分辨率的设备,开发者需对视频播放界面进行适配,以确保用户体验的一致性。

完成上述步骤后,开发者即可在HarmonyOS鸿蒙系统中实现跨设备视频播放功能。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部