目录

媒体开发概览

HarmonyOS提供丰富的一站式媒体业务开放能力,开发者能够在系统上快速开发主流的媒体业务,满足常规高频使用场景,并提供优秀的性能表现。

媒体系统架构

媒体系统架构提供用户视觉、听觉信息的处理能力,例如音视频信息的采集、编码存储、解码播放等。操作系统实现中,根据不同的媒体信息处理内容,将媒体划分为不同的模块,包括音频、视频、图片等。

媒体系统面向应用开发提供音视频应用、图库应用、相机应用的编程框架接口;面向设备开发提供对接不同硬件芯片的适配加速功能;中间以服务形式提供媒体核心功能和管理机制。

媒体应用开发综述

[h2]相机预览

相机预览是启动相机后实时的图像显示,通常在拍照和录像前执行。

指南

API参考

[h2]相机拍照

拍照是相机的最重要功能之一,Camera Kit提供多种拍照方式,开发者可以直接拉起系统相机拍照、采用系统预配置简化应用开发流程,或是根据开放接口开发一个专业的相机应用。

指南

API参考

最佳实践

示例代码

[h2]视频播放

AVPlayer提供功能齐全的一体化播放能力,支持多种音视频格式和流媒体协议。应用使用AVPlayer不仅可以实现基础的播放控制,还可以通过外挂字幕、画中画、自定义UI控件、内容版权保护等功能,为用户提供优良的影音体验。

指南

API参考

最佳实践

示例代码

设计体验

[h2]视频录制

AVRecorder提供音视频录制的能力,AVScreenCapture提供屏幕录制的能力,支持多源输入,可灵活配置录制参数,帮助开发者轻松实现音视频录制功能。

指南

API参考

示例代码

[h2]视频投播

使用媒体播控,可以简单高效地将音视频投放到其他HarmonyOS设备上播放,如在手机上播放的音视频,可以投到2in1设备上继续播放。

指南

API参考

示例代码

[h2]音频播放

开发者可以使用AVPlayer播放媒体资源,如mp4/mp3/mkv/mpeg-ts等,也可以使用AudioRenderer播放PCM音频数据。

AVPlayer指南

AVPlayer API参考

AudioRenderer指南

AudioRenderer API参考

通用指南

最佳实践

示例代码

设计体验

[h2]音频采集

AudioCapture提供了音频采集能力,为开发者提供PCM原始数据。

指南

API参考

示例代码

[h2]音频录制

AVRecorder提供音频录制的能力,帮助开发者录制纯音频文件。

指南

API参考

[h2]媒体资源的选择和保存

指南

API参考

示例代码

[h2]隐私安全

在进行媒体应用开发过程中,应用需要访问个人数据(如用户照片、视频、音频文件等)和设备数据(如相机、麦克风等)。这些资源受系统保护,使用时需通过Picker或申请相关权限。

访问个人数据

应用需要克隆、备份或同步图片/视频类文件时,可申请受限权限读写媒体库。

访问设备数据

麦克风权限ohos.permission.MICROPHONE、相机权限ohos.permission.CAMERA、媒体地理位置信息权限ohos.permission.MEDIA_LOCATION,均为用户授权权限,申请方式见向用户申请授权。

更多资源

Audio Kit

分类 资源链接
音频焦点

- 开发指南:使用合适的播放流类型、使用合适的录制流类型

- 开发指南:音频焦点和音频会话

- ArkTS API参考:AudioSession

- ArkTS API参考:StreamUsage

音频通话

- 开发指南:使用AudioRenderer播放对端的通话声音

- 开发指南:使用AudioCapturer录制本端的通话声音

更多

Audio Kit开发指南

Audio Kit API参考

AVCodec Kit

分类 资源链接
音频编解码

- 开发指南:音频编码

- 开发指南:音频解码

- 示例代码:AudioEncoder(音频编码)

- 示例代码:AudioDecoder(音频解码)

- C API参考:AudioCodec(音频编解码)

视频编解码

- 开发指南:视频编码

- 示例代码:VideoEncoder(视频编码)

- C API参考:VideoEncoder(视频编码)

- 开发指南:视频解码

- 示例代码:VideoDecoder(视频解码)

- C API参考:VideoDecoder(视频解码)

更多

AVCodec Kit开发指南

AVCodec Kit API参考

AVSession Kit

分类 资源链接
本地媒体会话

- ArkTS API参考:媒体会话管理

- 开发指南:应用接入AVSession场景介绍

- 示例代码:基于AVPlayer实现播放接入

更多

AVSession Kit开发指南

AVSession Kit API参考

Camera Kit

分类 资源链接
视频录制

- ArkTS API参考:Camera API(相机管理)

- 开发指南:录像(ArkTS)

- 开发指南:录像(C/C++)

- 示例实现:录像实践(ArkTS)

安全相机

- ArkTS API参考:SecureSession

- 开发指南:安全相机(ArkTS)

更多

Camera Kit开发指南

Camera Kit API参考

DRM Kit

分类 资源链接
AVPlayer播放DRM节目

- ArkTS API参考:DRM

- 开发指南:数字版权保护(ArkTS)

- 示例实现:基于AVPlayer播放DRM节目(ArkTS)

AVCodec播放DRM节目

- C API参考:数字版权保护API(C/C++)

- 开发指南:数字版权保护(C/C++)

- 示例实现:基于AVCodec播放DRM节目(C/C++)

更多

DRM Kit开发指南

DRM Kit API参考

Image Kit

分类 资源链接
图片解码

支持HEIF、JPEG、PNG、WebP、GIF、BMP、SVG、ICO、DNG格式图片的解码。

- ArkTS指南:使用ImageSource完成图片解码

- C/C++指南:使用Image_NativeModule完成图片解码

支持自定义申请内存类型,优化解码效率。

- ArkTS指南:申请图片解码内存(ArkTS)

- C/C++指南:申请图片解码内存(C/C++)

图片编码

支持编码为HEIF、JPEG、PNG、WebP、GIF格式图片。

- ArkTS指南:使用ImagePacker完成图片编码

- C/C++指南:使用Image_NativeModule完成图片编码

图片接收

支持作为消费者接收和处理图片。

- ArkTS指南:使用ImageReceiver完成图片接收

- C/C++指南:使用Image_NativeModule完成图片接收

图片编辑和处理

支持裁剪、缩放、偏移、旋转、翻转、设置透明度等图像变换,以及对图片部分区域做像素数据写入的位图操作。

- ArkTS指南:使用PixelMap完成图像变换

- ArkTS指南:使用PixelMap完成位图操作

- C/C++指南:使用Image_NativeModule完成位图操作

支持读取和编辑图片的EXIF信息。

- ArkTS指南:编辑图片EXIF信息

- C/C++指南:使用Image_NativeModule编辑图片EXIF信息

支持为图片添加个性化的滤镜效果。

- C/C++指南:使用ImageEffect编辑图片

支持对图片做清晰度增强、色彩空间转换、HDR效果转换。

- C/C++指南:图片缩放

- C/C++指南:图片色彩空间转换

- C/C++指南:图片动态元数据生成

- C/C++指南:单层HDR图片转换双层

- C/C++指南:双层HDR图片转换单层

更多

Image Kit开发指南

Image Kit API参考

Media Kit

Media Library Kit

Ringtone Kit

分类 资源链接
铃声设置服务

- ArkTS API参考:铃声服务

- 指南:设置铃声

Scan Kit

分类 资源链接
默认界面扫码

- ArkTS API参考:默认界面扫码

- 指南:默认界面扫码

自定义界面扫码

- ArkTS API参考:自定义界面扫码

- 指南:自定义界面扫码

图像识码

- ArkTS API参考:图像识码

- 指南:识别本地图片

- 指南:识别图像数据

码图生成

- ArkTS API参考:码图生成

- 指南:通过文本生成码图

- 指南:通过字节数组生成码图