HarmonyOS实战开发-音视频录制、如何实现音频录制和视频录制功能的应用

介绍

音视频录制应用是基于AVRecorder接口开发的实现音频录制和视频录制功能的应用,音视频录制的主要工作是捕获音频信号,接收视频信号,完成音视频编码并保存到文件中,帮助开发者轻松实现音视频录制功能,包括开始录制、暂停录制、恢复录制、停止录制、释放资源等功能控制。它允许调用者指定录制的编码格式、封装格式、文件路径等参数。

本示例主要使用@ohos.multimedia.media中的AVRecorder接口实现了录制功能;另外辅助使用@ohos.multimedia.medialibrary接口,实现了创建录制文件功能,接口使用以及权限获取详见媒体库管理。使用@ohos.multimedia.camera接口,实现了相机预览及出流功能,接口使用以及权限获取详见相机管理。

效果预览

使用说明

  1. 进入应用前请先安装VideoRecorder。
  2. 在主界面,可以点击视频录制、音频录制进入对应功能界面。
  3. 点击视频录制页面,进入页面呈现摄像头预览画面,用户可以通过点击左上角的设置图标进行视频分辨率参数设置,点击"开始""暂停""恢复""停止"等对应图标按钮进行视频录控相关操作。
  4. 点击音频录制页面,用户可以通过点击左上角的设置图标进行音频采样率参数设置,点击"开始""暂停""恢复""停止"等对应图标按钮进行音频录控相关操作。

工程目录

bash 复制代码
entry/src/main/ets/
|---entryability
|   |---data                               // 能力生命周期管理
|---pages
|   |---ListPage.ets                       // 首页,选择音频录制或者视频录制
|---recorder
|   |---AudioRecorder.ets                  // 音频录制页面
|   |---VideoRecorder.ets                  // 视频录制页面
|---utils
|   |---DateTimeUtils                      // 录制显示时间转换函数
|   |---SaveCameraAsset.ets                // 创建录制文件相关函数
|   |---Logger.ts                          // 封装的日志打印函数

具体实现

  • 录控功能接口调用实现参考工程目录中的音频录制页面和视频录制页面调用create()、prepare()、getInputSurface()、start()、pause()、resume()、stop()、reset()、release()接口实现录制器的创建、准备、录控操作、重置、销毁实例等功能;视频录制VRecorder.ets调用Camera接口实现相机出流功能配合视频录制功能,相机的实现方法参考自相机接口@ohos.multimedia.camera
  • 调用MediaLibrary实现创建录制文件代码在SaveCameraAsset.ets。

相关权限

开发者在进行录制功能开发前,需要先对所开发的应用配置相应权限,应用权限列表参考: 应用权限列表(zh-cn/application-dev/security/permission-list.md · OpenHarmony/docs - Gitee.com)。

音视频录制涉及的权限包括:

1.允许应用使用麦克风:ohos.permission.MICROPHONE

2.允许应用使用相机拍摄照片和录制视频:ohos.permission.CAMERA

3.允许应用读取用户外部存储中的媒体文件信息:ohos.permission.READ_MEDIA

4.允许应用读写用户外部存储中的媒体文件信息:ohos.permission.WRITE_MEDIA

5.允许应用获取设备位置信息:ohos.permission.LOCATION

依赖

不涉及

约束与限制

1.本示例仅支持在标准系统上运行,支持设备:Phone。

2.本示例仅支持API9版本SDK,版本号:3.2.10.8。

3.本示例使用的IDE版本信息:DevEco Studio 3.1 Beta2 (Build Version:3.1.0.400, built on April 7, 2023)。

4.相机、媒体库为系统接口,需要配置高权限签名,相关权限级别可查阅权限列表,需要配置系统应用签名。

下载

如需单独下载本工程,执行如下命令:

bash 复制代码
git init
git config core.sparsecheckout true
echo code/BasicFeature/Media/AVRecorder/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等...视频教程


鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→ https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128

鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

一、入门必看

1.应用开发导读(ArkTS)
2.........

二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.系统定义
2.技术架构
3.技术特性
4.系统安全
5...

三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.构建第一个ArkTS应用
3...

四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言

五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列

更多了解更多鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

相关推荐
lilian2332 小时前
HarmonyOS 7 新特性(二十五)|智慧手势:意图识别与误触治理
华为·harmonyos
贾伟康4 小时前
【时光清单|14】HarmonyOS ArkTS 主导航实战:统一页面入口、返回路径和参数校验
harmonyos·arkts·arkui·navigation·路由管理
骐骥17 小时前
学习:javaScriptProxy和registerJavaScriptProxy有什么区别,能注册多少个对象
学习·鸿蒙
贾伟康9 小时前
【时光清单|05】HarmonyOS ArkTS 倒计时卡片实战:适配 2x2、2x4 与 4x4 多尺寸
harmonyos·arkts·arkui·服务卡片·formextensionability
小雨青年9 小时前
【HarmonyOS 7 悬浮页签深度实战】07 折叠屏、平板与宽窗口的布局适配
华为·harmonyos
熊猫钓鱼>_>11 小时前
鸿蒙AI Agent新范式:从“对话式辅助”到“工程化代理”的Harness架构实战解析
人工智能·笔记·学习·华为·架构·harmonyos
大锅盖111 小时前
HarmonyOS ArkUI 非遗纹样素材平台设计复盘:朱砂宣纸与鎏金黛蓝的文化守护
华为·harmonyos
2501_9197490312 小时前
华为鸿蒙管理学习生活与工作APP—小羊管理
学习·华为·生活·harmonyos·鸿蒙
贾伟康12 小时前
【时光清单|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明
harmonyos·arkts·agc·appgallery·发布复查
fengkai454513 小时前
三、存储基础知识
华为·云计算·存储