惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
IT之家
IT之家
Last Week in AI
Last Week in AI
J
Java Code Geeks
L
LangChain Blog
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
博客园 - Franky
博客园 - 司徒正美
月光博客
月光博客
博客园 - 叶小钗
Vercel News
Vercel News
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
B
Blog RSS Feed
人人都是产品经理
人人都是产品经理
H
Help Net Security
G
Google Developers Blog
D
DataBreaches.Net

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
【HarmonyOS-媒体技术-AVRecorder】音视频录制功能开发全攻略
华为开发者联盟 · 2025-10-13 · via 人人都是产品经理

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

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

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

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

  • 音频编码格式:AAC、MP3等
  • 视频编码格式:264 / AVC、H.265 / HEVC等
  • 封装格式:MP4、M4A等

无论是会议备忘录音、K歌自嗨,还是VLog记录生活场景的功能开发,AVRecorder 都能轻松应对
典型应用:智能录音笔自定义相机看家监控等!

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

ArkTS 开发

  • 快速构建音视频录制界面
  • 状态监听、错误捕获、流程控制一体化

C/C++ NDK 开发

  • 与底层硬件深度整合,适用于相机、音视频引擎等复杂项目
  • 高性能音视频采集与处理

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

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

// 1. 创建 AVRecorder 实例
const avRecorder = await media.createAVRecorder();

// 2. 配置参数并准备录制
const avConfig = {
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’,  // 参考应用文件访问与管理开发示例新建并读写一个文件。
};

await avRecorder.prepare(avConfig);

// 3. 获取 Surface ID,传递给相机模块
await avRecorder.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_Config config;
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.启动相机,获取 Surface ID,传递给相机模块
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 开发指南 ArkTS API
🔗 AVRecorder 开发指南 C API

🌐 加入 HarmonyOS 社区,共创未来!

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

👉 加入开发者社区,获取最新资讯和技术支持
🔗 HarmonyOS 官方社区

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

题图来自Unsplash,基于 CC0 协议。