HarmonyOS鸿蒙Next中实现手机录屏功能示例代码
HarmonyOS鸿蒙Next中实现手机录屏功能示例代码
介绍
本示例基于C侧AVScreenCapture模块API实现视频录制功能,并将生成的录屏文件保存到到沙箱目录。
效果预览
使用说明
- 点击“start capture”按钮弹出是否允许应用使用屏幕的弹窗,点击允许开始屏幕录制。
- 点击“stop capture”按钮,屏幕录制停止,并生成录屏文件保存到沙箱目录。
实现思路
通过调用AVScreenCapture模块下的接口,实现屏幕录制的功能。先通过OH_AVScreenCapture_Create()创建一个capture实例,再初始化录屏参数,传入配置信息。通过OH_AVScreenCapture_SetMicrophoneEnabled()设置麦克风开关,当isMicrophone为true时,打开麦克风。调用OH_AVScreenCapture_StartScreenRecording()接口启动录屏,并保存录屏文件。
// 初始化录屏参数,传入配置信息OH_AVScreenRecorderConfig
OH_RecorderInfo recorderInfo;
std::string fileUrl = "fd://" + std::to_string(value0);
recorderInfo.url = const_cast<char*>(fileUrl.c_str());
recorderInfo.fileFormat = OH_ContainerFormatType::CFT_MPEG_4;
config.recorderInfo = recorderInfo;
// 设置回调
OH_AVScreenCapture_SetStateCallback(capture, OnStateChange, nullptr);
// 进行初始化操作
int32_t retInit = OH_AVScreenCapture_Init(capture, config);
OH_LOG_Print(LOG_APP, LOG_INFO, 1, "test", "init:%{public}d", retInit);
// 开始录屏
int32_t micRet = OH_AVScreenCapture_SetMicrophoneEnabled(capture, true);
int32_t retStart = OH_AVScreenCapture_StartScreenRecording(capture);
OH_LOG_Print(LOG_APP, LOG_INFO, 1, "test", "start:%{public}d", retStart);
micRet = OH_AVScreenCapture_SetMicrophoneEnabled(capture, true);
napi_value sum;
napi_create_double(env, retStart, &sum);
return sum;
更多关于HarmonyOS鸿蒙Next中实现手机录屏功能示例代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中实现手机录屏功能需使用AVRecorder
API。以下是关键代码示例:
import avRecorder from '@ohos.multimedia.avrecorder';
let avRecorderProfile = {
audioBitrate: 48000,
audioChannels: 2,
audioCodec: 'audio/mp4a-latm',
audioSampleRate: 48000,
fileFormat: 'mp4',
videoBitrate: 2000000,
videoCodec: 'video/mp4v-es',
videoFrameWidth: 720,
videoFrameHeight: 1080,
videoFrameRate: 30
}
let avRecorderConfig = {
videoSourceType: 1, // 屏幕录制
profile: avRecorderProfile,
url: 'fd://' // 输出文件描述符
}
// 创建实例
let recorder = await avRecorder.createAVRecorder();
// 准备录制
await recorder.prepare(avRecorderConfig);
// 开始录制
await recorder.start();
需要声明ohos.permission.MICROPHONE
和ohos.permission.WRITE_MEDIA
权限。
更多关于HarmonyOS鸿蒙Next中实现手机录屏功能示例代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个很好的HarmonyOS Next录屏功能实现示例。代码展示了如何使用AVScreenCapture模块的核心API进行屏幕录制:
- 关键API调用流程清晰:
- OH_AVScreenCapture_Create()创建实例
- OH_AVScreenCapture_Init()初始化配置
- OH_AVScreenCapture_SetMicrophoneEnabled()设置麦克风
- OH_AVScreenCapture_StartScreenRecording()开始录制
- 需要注意的细节:
- 文件路径使用"fd://"前缀表示文件描述符
- 配置了MP4容器格式(CFT_MPEG_4)
- 设置了状态回调函数OnStateChange
- 权限方面:
- 需要用户授权屏幕录制权限
- 示例中处理了权限弹窗场景
代码结构合理,包含了必要的错误日志打印(OH_LOG_Print),方便调试。开发者可以基于此示例快速实现录屏功能,并根据需要调整录制参数如分辨率、帧率等。