鸿蒙媒体开发系列14——视频播放开发

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。

1、概述

在HarmonyOS系统中,提供两种视频播放开发的方案:

  • AVPlayer:功能较完善的音视频播放ArkTS/JS API,集成了流媒体和本地资源解析,媒体资源解封装,视频解码和渲染功能,适用于对媒体资源进行端到端播放的场景,可直接播放mp4、mkv等格式的视频文件。

  • Video组件:封装了视频播放的基础能力,需要设置数据源以及基础信息即可播放视频,但相对扩展能力较弱。Video组件在鸿蒙UI开发中已经有介绍,可以移步到👉🏻 鸿蒙UI系统组件07——视频播放器(Video) 查看

本文讨论使用AVPlayer开发视频播放功能,实现端到端播放原始媒体资源。

播放的全流程包含以下几步:

    1. 创建AVPlayer

    2. 设置播放资源和窗口

    3. 设置播放参数(音量/倍速/缩放模式)

    4.播放控制(播放/暂停/跳转/停止),

    5. 重置,销毁资源。

2、AVPlayer的状态

在应用开发过程中,我们可以通过AVPlayer的state属性主动获取当前状态或使用on('stateChange')方法监听状态变化。

【如果应用在视频播放器处于错误状态时执行操作,系统可能会抛出异常或生成其他未定义的行为】

AVPlayer主要的状态罗列如下:

名称

类型

说明

idle

string

闲置状态,AVPlayer刚被创建createAVPlayer()或者调用了reset()方法之后,进入Idle状态。

首次创建createAVPlayer(),所有属性都为默认值。

调用reset()方法,url9+ 或 fdSrc9+属性会被重置,其他用户设置的属性将被保留。

initialized

string

资源初始化,在Idle 状态设置 url9+ 或 fdSrc9+属性,AVPlayer会进入initialized状态,此时可以配置窗口、音频等静态属性。

prepared

string

已准备状态,在initialized状态调用prepare()方法,AVPlayer会进入prepared状态,此时播放引擎的资源已准备就绪。

playing

string

正在播放状态,在prepared/paused/completed状态调用play()方法,AVPlayer会进入playing状态。

paused

string

暂停状态,在playing状态调用pause方法,AVPlayer会进入paused状态。

completed

string

播放至结尾状态,当媒体资源播放至结尾时,如果用户未设置循环播放(loop = 1),AVPlayer会进入completed状态,此时调用play()会进入playing状态和重播,调用stop()会进入stopped状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值