0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于开源鸿蒙的视频播放开发样例

OpenAtom OpenHarmony ? 来源:OpenAtom OpenHarmony ? 2025-08-19 10:41 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

拆·应用

【拆·应用】是为开源鸿蒙应用开发者打造的技术分享平台,汇聚开发者的技术洞见与实践经验,提供开发心得与创新成果的展示窗口。诚邀您踊跃发声,期待您的真知灼见与技术火花!

样例简介

在开源鸿蒙生态建设中,多媒体能力是构建丰富用户体验的核心要素。本开发样例针对视频播放场景,聚焦开源鸿蒙原生媒体框架,通过Video组件实现视频资源加载、播放状态控制及多样化展示形态。重点演示组件化播放器封装、全屏/窗口化动态切换、上下滑动轮播等关键技术方案,为开发者提供标准化视频功能实现路径,助力构建高性能、可定制的多媒体应用。

使用说明

启动播放:首页点击播放按钮,视频开始播放;再次点击画面进入全屏模式

窗口化切换:在首页向下滑500vp后,视频自动切换为悬浮小窗模式

轮播体验:点击底部导航栏"直播"入口,上下滑动浏览推荐视频流

开发环境准备

下载与安装DevEco Studio

1.前往下载中心,登录华为账号后下载DevEco Studio,并根据下载中心页面工具完整性指导进行完整性校验。

2.安装DevEco Studio 5.1.0release版本和OpenHarmony SDK API18。

说明:SDK已嵌入DevEco Studio中,无需额外下载配置,新的IDE安装完成后,新建一个helloworld工程检测环境是否OK。

3.下载烧录镜像和烧录工具。请参考链接:

https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.1.0-release.md

b6a2dc7c-78f6-11f0-a18e-92fbcf53809c.png

4.烧录开发板,请参考链接:

https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/docs/%E7%83%A7%E5%BD%95%E6%8C%87%E5%AF%BC%E6%96%87%E6%A1%A3.md

样例移植

源样例是使用DevEco Studio 3.1Beta2,基于API9开发,需要移植到DevEco Studio 5.1.0 release,OpenHarmony SDK API18上。在安装好DevEco Studio后,打开需要迁移的应用工程视频播放样例源码,样例源码链接:

https://gitcode.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Media/VideoShow

在工程同步过程中会有报错,需要修改应用工程相关配置文件。

1.打开工程后出现Sync failed,点击Migrate Assistant,如图:

b6bb4906-78f6-11f0-a18e-92fbcf53809c.png

a) 选择5.1.0,再点击Migrate。

b6d428c2-78f6-11f0-a18e-92fbcf53809c.png

b) 弹出提示框,点击Migrate。

b6e9d0fa-78f6-11f0-a18e-92fbcf53809c.png

c) 再次提示Sync failed,修改build-profile.json文件。

b6fa20d6-78f6-11f0-a18e-92fbcf53809c.png

2.修改工程目录下build-profile.json文件。

b709a31c-78f6-11f0-a18e-92fbcf53809c.png

a) 修改完之后点击Try Again 进行同步

b7215520-78f6-11f0-a18e-92fbcf53809c.png

b) 同步完成截图如下所示,此时就可以进行工程编译。

b73023e8-78f6-11f0-a18e-92fbcf53809c.png

3.点击编译按钮进行编译,出现如下报错,根据报错提示修改module.json。

b74d14c6-78f6-11f0-a18e-92fbcf53809c.png

a) 打开文件将鼠标放置在报错处,会出现修改提示,如图提示删除uiSyntax字段。

b75fa94c-78f6-11f0-a18e-92fbcf53809c.png

b) 将srcEntrance改为srcEntry,icon字段中内容修改为layered_image.json,并在资源文件夹下添加layered_image.json、backgroud.png、foreground.png文件,这些文件可以在新建工程中获取,修改完成后点击Sync Now。

b77209ca-78f6-11f0-a18e-92fbcf53809c.png

4.代码报错修改,如下是几个典型的报错解决方案。

a) arkts-no-ctor-prop-decls错误。

b789114c-78f6-11f0-a18e-92fbcf53809c.png

报错代码示例:

class Person {

constructor(readonly name: string) {}

getName(): string {

return this.name;

}

}

应修改为:

class Person {

name: string

constructor(name: string) {

this.name = name;

}

getName(): string {

return this.name;

}

}

b) arkts-no-any-unknown错误,需要按照业务逻辑,将代码中的any, unknown改为具体的类型。

b798a7ce-78f6-11f0-a18e-92fbcf53809c.png

报错代码示例:

functionprintObj(obj: any) {

console.log(obj);

}

printObj('abc');

应修改为:

functionprintObj(obj: string) {

console.log(obj);

}

printObj('abc');

c) arkts-no-var错误,需要将var改为let。

b7ab6b5c-78f6-11f0-a18e-92fbcf53809c.png

d) arkts-no-props-by-index错误。

b7bb4db0-78f6-11f0-a18e-92fbcf53809c.png

报错代码示例:

import{ router }from'@kit.ArkUI';

letparams:Object= router.getParams();

letfunNum:number= params['funNum'];

lettarget:string= params['target'];

应修改为:

import{ router }from'@kit.ArkUI';

letparams = router.getParams()asRecord;

letfunNum:number= params.funNumasnumber;

lettarget:string= params.targetasstring;

Video组件介绍

媒体视频播放是该组件从API version 7开始支持,提供简单的视频播放、播控功能,复杂开发场景推荐使用AVPlayer播控API和XComponent组件开发,本样例中Video组件播放视频的代码如下: 详细介绍请查看开源鸿蒙官网Video组件。

Video({

src: this.videoSrc,

controller: this.detailVideoController

})
.width('100%')
.backgroundColor(this.isHidden ? '#ffffff' : '#000000')
.aspectRatio(1.12)
.controls(this.controls)
.objectFit(ImageFit.Contain)
.onUpdate((e) => {
this.updateTime = e.time
})
.onPrepared((e) => {

console.info('onPrepared:' + e.duration)
})
.onFinish(() => {
this.isHidden = true;
this.isStart = false;
this.updateTime = 0;
})

结语

以上是本次样例开发移植的分享,主要包括开发环境搭建、开发移植的步骤和编译问题解决,可以让初学者掌握开发开源鸿蒙应用的环境搭建和基本组件等知识,也让有基础的开发者了解到ArkTS语法规则下将TS代码适配成ArkTS代码的适配方法。最后,欢迎更多的开发者加入到开源鸿蒙应用开发中来。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3781

    浏览量

    44140
  • 视频播放
    +关注

    关注

    0

    文章

    13

    浏览量

    7142
  • 鸿蒙
    +关注

    关注

    60

    文章

    2658

    浏览量

    44357
  • DevEco Studio
    +关注

    关注

    0

    文章

    32

    浏览量

    1360

原文标题:拆·应用丨基于开源鸿蒙的视频播放开发样例

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙ArkUI开发-Video组件的使用

    视频功能为,在应用开发过程中,我们需要通过ArkUI提供的Video组件为应用增加基础的视频播放功能。借助Video组件,我们可以实现
    的头像 发表于 01-23 16:59 ?2023次阅读
    <b class='flag-5'>鸿蒙</b>ArkUI<b class='flag-5'>开发</b>-Video组件的使用

    鸿蒙开发-视频播放器方案

    在HarmonyOS系统中,提供两种视频播放开发的方案: [AVPlayer]:功能较完善的音视频播放ArkTS/JS API,集成了流媒体和本地资源解析,媒体资源解封装,
    发表于 02-19 17:20

    HarmonyOS实战开发-如何实现音频低时延录制和播放,AudioVivid音乐播放的相关功能

    ||||---Ability.test.ets // 自动化测试用 具体实现 音频录制和播放-源码参考:audioRecording.cpp低时延录制开发指导文档低时延播放开发
    发表于 05-11 20:26

    【OpenHarmony开发】智能家居相关demo汇总

    、基于Hi3516开发开发的智能油烟机 本Demo是基于Hi3516开发板,使用开源OpenHarmony开发的应用。本应用主要功能有:?
    发表于 03-04 16:32

    鸿蒙开源第三方组件资料合集

    1、鸿蒙开源第三方组件——日志工具组件Timber_ohosTimber_ohos是一个带有小型可扩展API的日志工具组件,它可以给开发者提供统一的API接口,来记录不同类型的日志,帮助开发
    发表于 03-23 09:53

    鸿蒙开源全场景应用开发资料汇总

    1、鸿蒙开源全场景应用开发——视频编解码面对鸿蒙这一全新的生态,广大消费者在积极尝鲜的同时,家中不可避免会出现安卓设备和
    发表于 03-23 10:09

    基于OpenHarmony开发的demo展示

    基于OpenHarmony开发的demo,包括智能停车场、分布式游戏、分布式音频播放、分布式菜单、视频
    发表于 04-27 15:12

    基于鸿蒙适配移植的开源视频缓存引擎项目案例

    项目介绍 项目名称:开源视频缓存引擎项目 所属系列:鸿蒙的第三方组件适配移植 功能:支持自动缓存视频并在断网状态下播放
    发表于 04-06 10:27 ?2次下载

    openharmony开源社区 OpenHarmony开发上新了

    openharmony开源社区 OpenHarmony开发上新了 OpenHarmony 开源项目是由开放原子
    的头像 发表于 04-25 16:37 ?2831次阅读

    8瓦迷你功放开源项目

    电子发烧友网站提供《8瓦迷你功放开源项目.zip》资料免费下载
    发表于 08-02 16:26 ?3次下载
    8瓦迷你功<b class='flag-5'>放开源</b>项目

    简单的录制和播放开源分享

    电子发烧友网站提供《简单的录制和播放开源分享.zip》资料免费下载
    发表于 11-07 15:34 ?0次下载
    简单的录制和<b class='flag-5'>播放开源</b>分享

    OpenHarmony创意开发亮相HDC2022 共创欣欣向荣的“开源雨林”

    开发展品,适配OpenHarmony的各个版本,满足不同行业与开发者对不同类型设备的开发,让到场的不少
    的头像 发表于 11-22 17:38 ?978次阅读
    OpenHarmony创意<b class='flag-5'>开发</b><b class='flag-5'>样</b><b class='flag-5'>例</b>亮相HDC2022 共创欣欣向荣的“<b class='flag-5'>开源</b>雨林”

    2025开源鸿蒙开发者大会圆满落幕

    近日,开源鸿蒙开发者大会2025(OHDC.2025,简称“大会”)在深圳隆重开幕。大会正式发布了开源鸿蒙5.1 Release版本,举行了
    的头像 发表于 05-26 17:03 ?716次阅读

    华为亮相2025开源鸿蒙开发者大会

    近日,开源鸿蒙开发者大会2025(以下简称大会)在深圳成功举办。大会以开源鸿蒙5.1 Release版本发布为契机,聚焦
    的头像 发表于 05-29 09:07 ?703次阅读

    蜻蜓FM开源“SmartXPlayer”音频播放组件,打造鸿蒙多端音频播放新引擎

    近日,由蜻蜓FM研发的音频播放组件“SmartXPlayer”正式开源并上线 OpenHarmony 三方库中心仓。作为一款专为鸿蒙多端场景打造的音频播放引擎,SmartXPlayer
    的头像 发表于 07-21 16:31 ?241次阅读
    蜻蜓FM<b class='flag-5'>开源</b>“SmartXPlayer”音频<b class='flag-5'>播放</b>组件,打造<b class='flag-5'>鸿蒙</b>多端音频<b class='flag-5'>播放</b>新引擎