鸿蒙OS 媒体应用

预计阅读时间1 分 136 views

本文概述了 HarmonyOS 媒体应用开发的关键方面,包括音频播放和录制、音频通话和图片处理,帮助开发者快速上手媒体应用开发。

一、媒体系统架构

HarmonyOS 媒体系统提供处理视觉、听觉信息的全面功能,包括音视频采集、压缩、存储、解压和播放等。其架构分为三个层次:

  • 应用层: 提供音视频应用和图库应用的开发框架接口。
  • 服务层: 提供媒体核心功能和管理机制,如编解码、音视频同步等。
  • 设备层: 对接不同硬件芯片,提供适配和加速功能。

二、音频播放开发

HarmonyOS 提供多种 API 支持音频播放,开发者需要根据实际需求选择合适的方案:

API说明适用场景
AVPlayer功能完善的音视频播放 API,支持流媒体和本地资源播放,支持 mp3、m4a 等格式。直接播放常见音频文件
AudioRenderer用于音频输出的 API,仅支持 PCM 格式,需应用持续写入音频数据。需要对音频数据进行预处理或更精细控制的场景,如音频特效、音效合成等
OpenSL ES跨平台音频 Native API,仅支持 PCM 格式。从其他嵌入式平台移植或需要 Native 层音频输出的场景

未来版本将提供更便捷的音效播放接口。

三、音频录制开发

类似于音频播放,音频录制也需根据需求选择合适的 API:

API说明适用场景
AVRecorder功能完善的音视频录制 API,支持音频输入、编码和封装,可生成 m4a 文件。直接录制音频并保存为文件
AudioCapturer用于音频输入的 API,仅支持 PCM 格式,需应用持续读取音频数据。需要对音频数据进行后处理或更精细控制的场景,如音频降噪、语音识别等
OpenSL ES跨平台音频 Native API,仅支持 PCM 格式。从其他嵌入式平台移植或需要 Native 层音频输入的场景

注意: 录制音频属于隐私敏感行为,应用需先向用户申请 ohos.permission.MICROPHONE 权限。

四、音频通话开发

音频通话需要同时进行音频输出和输入,可分别使用 AudioRendererAudioCapturer 实现。开发者需注意管理音频场景模式和铃声模式,并在通话开始和结束时采取合适的音频策略。

五、视频播放开发

HarmonyOS 提供两种视频播放方案:

  • AVPlayer: 功能完善的音视频播放 API,支持流媒体和本地资源播放,支持 mp4、mkv 等格式。
  • Video 组件: ArkUI 提供的封装了基础视频播放能力的组件,设置数据源即可播放,但扩展能力较弱。

六、图片开发

图片开发涉及图片解码、处理和编码,HarmonyOS 提供以下关键类:

  • ImageSource: 表示解码后的图片源,用于获取或修改图片信息。
  • PixelMap: 表示图片的像素数据,可进行旋转、缩放、裁剪等处理。
  • ImagePacker: 用于将 PixelMapImageSource 压缩编码为新图片。

图片开发流程:

  1. 获取原始图片。
  2. 创建 ImageSource 实例。
  3. 使用 ImageSource 解码生成 PixelMap
  4. PixelMap 进行处理。
  5. 使用 Image 组件显示图片或使用 ImagePacker 编码保存图片。
分享此文档

鸿蒙OS 媒体应用

或复制链接

本页目录