@hxa-rn/react-native-record-screen
v0.6.2-beta.1
Published
react-native-record-screen (OpenHarmony adaptation)
Downloads
110
Readme
本项目基于 react-native-record-screen开发。如果在使用过程中有任何问题,欢迎在AtomGit提交Issue,会及时跟进。
项目介绍
@hxa-rn/react-native-record-screen 是 react-native-record-screen 的鸿蒙(OpenHarmony)适配版本,当前规范版本号为 0.6.2-beta.1。
本库提供屏幕录制 TurboModule:startRecording / stopRecording / clean。
| 鸿蒙适配包版本 | 原始库版本 | 支持 RN 版本 | Autolink | | ------------ | ---------- | ------------ | -------- | | 0.6.2-beta.1 | 0.6.2 | 0.72+ | 是 |
集成指南
npm install @hxa-rn/react-native-record-screen本模块支持 Autolink。import 时使用原库名 'react-native-record-screen'(harmony.alias)。
peerDependencies:react-native(>=0.72)。
mic: true 时需声明 ohos.permission.MICROPHONE、ohos.permission.KEEP_BACKGROUND_RUNNING,并配置 backgroundModes: ['audioRecording']。
使用说明
import RecordScreen, { RecordingResult } from 'react-native-record-screen';
export async function recordDemo() {
const res = await RecordScreen.startRecording({ mic: true });
if (res === RecordingResult.Started) {
const response = await RecordScreen.stopRecording();
if (response.status === 'success') {
console.log(response.result.outputURL);
}
}
await RecordScreen.clean();
}接口文档
| API | 描述 | 参数 | 返回值 | HarmonyOS 支持 |
|-----|------|------|--------|----------------|
| startRecording | 开始屏幕录制,触发系统录屏授权 | config?: { fps?, bitrate?, mic? } | Promise<'started' \| 'permission_error'> | ✅ 完全支持 |
| stopRecording | 停止录制并返回输出路径 | 无 | Promise<{ status, result }> | ✅ 完全支持 |
| clean | 清理沙箱录制文件 | 无 | Promise<string> | ✅ 完全支持 |
鸿蒙端 fps 无对应录制字段,接受但 no-op。输出为 file:// 沙箱路径。
快速验证(运行 Example)
前置条件
| 依赖 | 版本要求 | |------|----------| | Node.js | >= 18 | | DevEco Studio | 5.0+ | | HarmonyOS SDK | API 12+ |
运行步骤
1. 克隆仓库
git clone https://gitcode.com/hxa-rn/react-native-record-screen.git
cd react-native-record-screen
git checkout br_rnoh0.722. 安装仓库开发依赖
npm install --legacy-peer-depsExample 已改为从 npm 公仓安装 @hxa-rn/[email protected],不再使用本地 file:../xxx.tgz,运行 Example 不必再执行 npm pack。
3. 进入 example 目录,安装依赖
cd example # 或 example_auto
npm install --legacy-peer-deps4. 生成 JS Bundle
npm run dev产物:harmony/entry/src/main/resources/rawfile/bundle.harmony.js
5. 用 DevEco Studio 打开鸿蒙工程
- 打开 DevEco Studio
- 选择
example/harmony(或example_auto/harmony)目录 - 等待 Sync 完成
6. 编译并运行 HAP
在 DevEco Studio 中点击运行按钮,将 HAP 安装到设备/模拟器。
注意:Example 中已预置插件依赖和 Package 注册,无需手动配置 Link。Example 已声明
ohos.permission.MICROPHONE、ohos.permission.KEEP_BACKGROUND_RUNNING。
约束与限制
兼容性
- 鸿蒙 SDK:API 12+
- 上游 RN SDK:0.72+
- React Native / RNOH:0.72+
- DevEco Studio:5.0+
权限
ohos.permission.MICROPHONE(user_grant,mic: true时)ohos.permission.KEEP_BACKGROUND_RUNNING(system_grant)
使用限制
- 录屏授权由系统 Picker 完成。
mic: true时先弹录屏授权,授权通过后再申请麦克风权限;用户拒绝麦克风权限不中断录制,降级为仅屏幕录制(输出视频无麦克风音轨)。
开源license
本项目基于 MIT 协议,详见 LICENSE 文件。
问题反馈渠道
使用问题请在 AtomGit 提交 Issue。也可在 GitCode 仓库反馈:
https://gitcode.com/hxa-rn/react-native-record-screen
https://gitcode.com/hxa-rn/react-native-record-screen/issues
