热搜词: 2025 2026

[HarmonyOS-媒体技术-AVRecorder]音视频录制功能开发全攻略

你还在为音视频录制功能发愁吗?

HarmonyOS的AVRecorder,就是你一直在寻找的那把“万能钥匙”!

一、功能全面,兼容性强,开箱即用

AVRecorder是HarmonyOS平台上强大的音视频录制组件,支持以下主流格式:

音频编码格式:AAC、MP3等

视频编码格式:264/AVC、H.265/HEVC等

封装格式:MP4、M4A等

无论是会议备忘录音、K歌自嗨,还是VLog记录生活场景的功能开发,AVRecorder都能轻松应对!

典型应用:智能录音笔、自定义相机、看家监控等!

二、开发门槛低,功能强大,支持多种语言

ArkTS开发

快速构建音视频录制界面

状态监听、错误捕获、流程控制一体化

C/C++NDK开发

与底层硬件深度整合,适用于相机、音视频引擎等复杂项目

高性能音视频采集与处理

三、开发流程清晰,代码结构规范,易于维护

音视频录制流程(ArkTS示例):

//1.创建AVRecorder实例

constavRecorder=awaitmedia.createAVRecorder;

//2.配置参数并准备录制

constavConfig={

audioSourceType:media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC,

videoSourceType:media.VideoSourceType.VIDEO_SOURCE_TYPE_SURFACE_YUV,

profile:{

audioBitrate:112000,

audioChannels:2,

audioCodec:media.CodecMimeType.AUDIO_AAC,

fileFormat:media.ContainerFormatType.CFT_MPEG_4,

videoBitrate:200000,

videoCodec:media.CodecMimeType.VIDEO_AVC,

videoFrameWidth:640,

videoFrameHeight:480,

},

url:‘fd://xx’,//参考应用文件访问与管理开发示例新建并读写一个文件。

};

awaitavRecorder.prepare(avConfig);

//3.获取SurfaceID,传递给相机模块

awaitavRecorder.getInputSurface;

//4.开始/暂停/恢复/停止录制

avRecorder.start;

avRecorder.pause;

avRecorder.resume;

avRecorder.stop;

//5.释放资源

avRecorder.reset;

avRecorder.release;

四、NDK开发:

示例代码片段(C++):

//1.创建AVRecorder实例

OH_AVRecorder*avRecorder=OH_AVRecorder_Create;

//2.配置参数并准备录制

OH_AVRecorder_Configconfig;

config.audioSourceType=AVRECORDER_MIC;

config.profile.audioBitrate=96000;

config.profile.audioChannels=2;

config.profile.audioCodec=AVRECORDER_AUDIO_AAC;

config.profile.audioSampleRate=48000;

config.profile.fileFormat=AVRECORDER_CFT_MPEG_4;

config.fileGenerationMode=AVRECORDER_APP_CREATE;

config.metadata.location.latitude=27.791863;

config.metadata.location.longitude=64.574687;

OH_AVRecorder_Prepare(avRecorder,&config);

//3.启动相机,获取SurfaceID,传递给相机模块

OH_AVRecorder_GetInputSurface(avRecorder,&window);

//4.开始/暂停/恢复/停止录制

OH_AVRecorder_Start(avRecorder);

OH_AVRecorder_Pause(avRecorder);

OH_AVRecorder_Resume(avRecorder);

OH_AVRecorder_Stop(avRecorder);

//5.释放资源

OH_AVRecorder_Reset(avRecorder);

OH_AVRecorder_Release(avRecorder);

五、开发建议

严格遵守状态机规则:只有在started状态下才能调用pause,在paused状态下才能调用resume。

资源释放不可忽视:录制结束后务必调用release避免内存、线程等系统资源泄漏。

权限管理要到位:当需要使用麦克风时,需提前申请麦克风权限。

六、为什么选择AVRecorder?

高效稳定,轻松构建专业级音视频应用

AVRecorder提供了方便快捷的音视频录制能力,帮助开发者快速构建稳定流畅的多媒体应用,生成音视频文件。

原生支持,无缝加入鸿蒙生态

作为鸿蒙系统原生的录制框架,AVRecorder与系统深度集成,兼容性强,能充分发挥鸿蒙设备的硬件能力,为开发者提供更顺畅的开发体验和更佳的用户体验。

灵活配置,满足多样化需求

支持多种音视频格式、编码参数和录制模式的自定义配置,开发者可根据不同应用场景灵活调整录制设置,打造个性化的音视频解决方案。

开放文档与社区支持,快速上手

提供完善的官方文档和丰富的示例代码,配合活跃的开发者社区支持,帮助开发者快速掌握AVRecorder的使用技巧,提升开发效率。

七、立即行动,开启你的音视频开发之旅!

点击了解完整开发示例与API文档

AVRecorder开发指南ArkTSAPI

AVRecorder开发指南CAPI

加入HarmonyOS社区,共创未来!

我们诚邀广大开发者一起参与HarmonyOS技术生态建设,共建更开放、更智能的未来世界!

加入开发者社区,获取最新资讯和技术支持

HarmonyOS官方社区

让AVRecorder成为你开发路上的得力助手,开启你的音视频开发新纪元!