有没有HarmonyOS鸿蒙Next中单独取录屏的音视频帧的接口?

有没有HarmonyOS鸿蒙Next中单独取录屏的音视频帧的接口? 【问题描述】:录屏保存的文件格式是h264帧,音频是aac帧,可以通过回调或某种方式分别把录屏后的音视频流实时取出来。

【问题现象】:想知道目前有没有可以单独取录屏的音视频帧的接口

【版本信息】:不涉及

【复现代码】:不涉及

4 回复

【背景知识】

【解决方案】

可以参考视频中提取音频的案例代码,已经验证可以实现录屏提取音频以及取视频帧,

更多关于有没有HarmonyOS鸿蒙Next中单独取录屏的音视频帧的接口?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


楼主看下这个案例,https://developer.huawei.com/consumer/cn/doc/architecture-guides/audio_extractor-0000002298797484

mp4parser调用FFmpeg可以实现音视频帧的提取

HarmonyOS Next中可通过AVRecorder接口实现录屏音视频帧的单独获取。具体使用getInputSurface()获取视频帧数据,通过AudioCapturer独立采集音频帧。系统支持将音视频流分离处理,开发者可分别配置编码参数进行帧级操作。需在config.json中声明ohos.permission.CAPTURE_SCREEN权限。

在HarmonyOS Next中,可以通过ScreenRecorderAudioCapturer结合的方式,实现分别获取录屏的音视频帧数据。

1. 视频帧获取: 使用ScreenRecorder类,通过设置RecorderConfig并注册OnFrameConsumedListener回调,可以实时获取编码后的H.264视频帧。

关键接口:

  • ScreenRecorder.setRecorderConfig():配置录制参数
  • ScreenRecorder.setOnFrameConsumedListener():注册帧数据回调
  • OnFrameConsumedListener.onFrameConsumed():接收视频帧数据

2. 音频帧获取: 使用AudioCapturer类独立采集音频数据,获取原始PCM音频帧或编码后的AAC帧。

关键接口:

  • AudioCapturer初始化并配置音频参数
  • AudioCapturer.start()开始采集
  • 通过read()方法循环读取音频数据

实现要点:

  • 需要分别处理视频和音频的时间戳以实现同步
  • 视频帧通过回调被动接收,音频帧需要主动读取
  • 注意权限声明:ohos.permission.CAPTURE_SCREENohos.permission.MICROPHONE

这种方式可以分别获取音视频原始数据流,适用于需要实时处理或自定义封装的场景。

回到顶部