| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 06-May-2025 | - | 36 | 33 | ||
| entry/ | 06-May-2025 | - | 3,189 | 2,817 | ||
| hvigor/ | 06-May-2025 | - | 22 | 21 | ||
| screenshots/device/ | 06-May-2025 | - | ||||
| .gitignore | D | 06-May-2025 | 142 | 11 | 11 | |
| README.md | D | 06-May-2025 | 1 KiB | 20 | 10 | |
| README_zh.md | D | 06-May-2025 | 9.3 KiB | 118 | 82 | |
| build-profile.json5 | D | 06-May-2025 | 1.1 KiB | 43 | 42 | |
| hvigorfile.ts | D | 06-May-2025 | 158 | 2 | 1 | |
| hvigorw | D | 06-May-2025 | 2 KiB | 62 | 28 | |
| hvigorw.bat | D | 06-May-2025 | 2 KiB | 73 | 56 | |
| oh-package.json5 | D | 06-May-2025 | 813 | 26 | 25 | |
| ohosTest.md | D | 06-May-2025 | 2.5 KiB | 18 | 16 |
README.md
1# Media - Recorder 2 3### Introduction 4 5 This sample shows how to use audio recording and playback of the media service. 6 7### Usage 8 91. Start the sample app, touch the **Record** button at the bottom of the home screen to start recording. During the recording, you can touch the **Pause** button in the lower right corner to pause the recording, and touch the **Back** button at the top or the red **Stop** button to stop recording and return to the home screen. The recorded audio file is displayed on the home screen. 10 112. Touch an audio file to play it. On the audio playback page, you can touch the corresponding button to pause or resume the playback. 12 133. Touch and hold an audio file, and then you can select multiple audio files. After selecting one of them, you can touch the corresponding button at the bottom to rename or delete it. 14 154. Swipe left on an audio file to display the **Rename** and **Delete** buttons. Touch the corresponding button to rename or delete the audio file. 16 17### Constraints 18 19This sample can only be run on standard-system devices. 20
README_zh.md
1# 录音机 2 3### 介绍 4 5本示例使用[audio](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-audio-kit/js-apis-audio.md)相关接口实现音频录制和播放的功能,使用[@ohos.filemanagement.userFileManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-userFileManager-sys.md)实现音频文件的管理。 6 7相关概念: 8 9AudioRecorder:音频录制的主要工作是捕获音频信号,完成音频编码并保存到文件中,帮助开发者轻松实现音频录制功能。它允许调用者指定音频录制的采样率、声道数、编码格式、封装格式、文件路径等参数。 10 11AudioPlayer:音频播放的主要工作是将音频数据转码为可听见的音频模拟信号并通过输出设备进行播放,同时对播放任务进行管理。 12 13### 效果预览 14 15|首页|录制界面| 16|--------------------------------|--------------------------------| 17|| | 18 19使用说明: 20 211.启动应用,点击首页底部**录制**按钮跳转到录制界面开始录制音频,录制过程中可以点击右下角的**暂停**按钮暂停录制,点击顶部**返回键**或红色的**停止**按钮停止录音并返回首页,首页中展示录制好的音频文件。 22 232.点击**音频文件**可以播放该文件,播放界面可以点击按钮进行暂停和继续播放。 24 253.长按音频文件进入多选状态,可以选择音频文件,选择后可以点击底部的按钮进行重命名和删除操作。 26 274.左滑音频文件,可以滑出重命名和删除按钮,点击可以对该音频文件进行重命名和删除操作。 28 29### 工程目录 30``` 31entry/src/main/ets/ 32|---common 33| |---AnimateView.ets // 录音动画组件 34| |---AudioItem.ets // 每项录音组件 35| |---BasicDataSource.ets // 计时组件 36| |---CheckTitle.ets // 是否选择标题 37| |---HomeView.ets // 主页 38| |---PlayView.ets // 播放组件 39| |---RenameDialog.ets // 重命名弹窗组件 40| |---TitleBar.ets // 首页标题组件 41| |---TitleWithBack.ets // 详情页面标题组件 42|---entryAbility 43| |---EntryAbility 44|---model 45| |---AudioModel.ts 46| |---DateTimeUtil.ts // 日期工具 47| |---Logger.ts // 日志工具 48| |---MediaManager.ts 49| |---Record.ets // 计时工具 50| |---RecordModel.ts 51| |---Utils.ts 52|---pages 53| |---Index.ets // 首页 54| |---Play.ets // 播放页面 55| |---RecordPage.ets // 录音页面 56``` 57 58### 具体实现 59 60* 本示例分为三个模块: 61 * 录音页面模块 62 * 使用FileAsset提供封装文件属性的方法,createAudioPlayer同步方式创建音频播放实例实现录音,暂停录音功能 63 * 源码链接:[RecordModel.ts](entry/src/main/ets/model/RecordModel.ts),[RecordModel.ts](entry/src/main/ets/model/RecordModel.ts),[AudioModel.ts](entry/src/main/ets/model/AudioModel.ts),[MediaManager.ts](entry/src/main/ets/model/MediaManager.ets),[Utils.ts](entry/src/main/ets/model/Utils.ts),[DateTimeUtil.ts](entry/src/main/ets/model/DateTimeUtil.ts),[EntryAbility.ts](entry/src/main/ets/entryability/EntryAbility.ts) 64 * 参考接口:[audio](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-audio-kit/js-apis-audio.md),[@ohos.router](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-router.md),[@ohos.filemanagement.userFileManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-userFileManager-sys.md),[@ohos.multimedia.media](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-kit/js-apis-media.md),[@ohos.app.ability.common](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-common.md),[@ohos.window](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-window.md),[@ohos.promptAction](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-promptAction.md),[@ohos.abilityAccessCtrl](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-abilityAccessCtrl.md),[@ohos.data.preferences](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-preferences.md) 65 66 * 录音列表模块 67 * getMediaLibraryAPI访问媒体数据信息,renameCallBack,renameDialogController方法对录音进行重命名,deleteFile,deleteDialogShow方法删除某条录音。 68 * 源码链接:[RenameDialog.ets](entry/src/main/ets/common/RenameDialog.ets),[MediaManager.ts](entry/src/main/ets/model/MediaManager.ets),[AudioModel.ts](entry/src/main/ets/model/AudioModel.ts),[Record.ets](entry/src/main/ets/model/Record.ets) 69 * 参考接口:[@ohos.router](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-router.md),[@ohos.filemanagement.userFileManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-userFileManager-sys.md),[@ohos.multimedia.media](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-kit/js-apis-media.md),[@ohos.app.ability.common](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-common.md),[@ohos.window](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-window.md),[@ohos.promptAction](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-promptAction.md),[@ohos.abilityAccessCtrl](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-abilityAccessCtrl.md),[@ohos.data.preferences](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkdata/js-apis-data-preferences.md) 70 71 * 播放模块 72 * createAudioPlayer方法创建音频播放实例,onPageShow方法播放音频,onPageHide方法暂停播放音频。 73 * [DateTimeUtil.ts](entry/src/main/ets/model/DateTimeUtil.ts),[AudioModel.ts](entry/src/main/ets/model/AudioModel.ts),[Record.ets](entry/src/main/ets/model/Record.ets),[MediaManager.ts](entry/src/main/ets/model/MediaManager.ets) 74 * 参考接口:[@ohos.router](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-router.md),[@ohos.filemanagement.userFileManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-userFileManager-sys.md),[@ohos.multimedia.media](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-kit/js-apis-media.md),[@ohos.app.ability.common](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-common.md) 75 76### 相关权限 77 78权限一:用户授权,访问媒体和文件 79 80[ohos.permission.WRITE_MEDIA](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionwrite_media) 81 82[ohos.permission.READ_MEDIA](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionread_media) 83 84权限二:用户授权,使用麦克风 85 86[ohos.permission.MICROPHONE](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionmicrophone) 87 88权限三:用户授权,读写用户公共目录的音频文件 89 90[ohos.permission.READ_AUDIO](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionread_audio) 91 92[ohos.permission.WRITE_AUDIO](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionwrite_audio) 93 94### 依赖 95 96不涉及。 97 98### 约束与限制 99 1001.本示例仅支持标准系统上运行。 101 1022.本示例已适配API version 11版本SDK,版本号:4.1.5.1。 103 1043.本示例需要使用DevEco Studio版本号(4.1Release)及以上版本才可编译运行。 105 1064.本示例需要使用@ohos.process、@ohos.filemanagement.userFileManager系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)。 107 108### 下载 109 110如需单独下载本工程,执行如下命令: 111``` 112git init 113git config core.sparsecheckout true 114echo code/SystemFeature/Media/Recorder/ > .git/info/sparse-checkout 115git remote add origin https://gitee.com/openharmony/applications_app_samples.git 116git pull origin master 117 118```