HarmonyOS 鸿蒙Next 如何解决AVScreenCapture抓取的视频数据无法正常显示问题

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何解决AVScreenCapture抓取的视频数据无法正常显示问题

AVScreenCapture抓取的视频数据无法正常显示。OH_AVBuffer_GetAddr(buffer) 里面实际有录屏的数据,但是OH_AVBuffer_GetBufferAttr(buffer, &info) 获取到的 info.size 一直为0。查看日志无对应报错,核心代码片段如下:

OH_VideoCaptureInfo videocapinfo = {
.videoFrameWidth = 720, .videoFrameHeight = 1280,
.videoSource = OH_VIDEO_SOURCE_SURFACE_RGBA 
};
 


更多关于HarmonyOS 鸿蒙Next 如何解决AVScreenCapture抓取的视频数据无法正常显示问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
将屏幕录制参数设置为768*1280。

// 初始化录屏,传入配置信息OH_AVScreenRecorderConfig

OH_AudioCaptureInfo miccapinfo = {.audioSampleRate = 16000, .audioChannels = 2, .audioSource = OH_MIC};

OH_VideoCaptureInfo videocapinfo = {

.videoFrameWidth = 768, .videoFrameHeight = 1280, .videoSource = OH_VIDEO_SOURCE_SURFACE_RGBA}; // 这里配置的宽需要满足64的倍数

OH_AudioInfo audioinfo = {

.micCapInfo = miccapinfo,

};

OH_VideoInfo videoinfo = {.videoCapInfo = videocapinfo};

OH_AVScreenCaptureConfig config = {.captureMode = OH_CAPTURE_HOME_SCREEN,

.dataType = OH_ORIGINAL_STREAM,

.audioInfo = audioinfo,

.videoInfo = videoinfo};

OH_AVScreenCapture_Init(capture, config);

更多关于HarmonyOS 鸿蒙Next 如何解决AVScreenCapture抓取的视频数据无法正常显示问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next系统中,AVScreenCapture抓取的视频数据无法正常显示的问题,通常与视频流编码、解码及显示配置有关。解决此问题可尝试以下方法:

  1. 确认视频流格式:确保AVScreenCapture抓取的视频流格式与解码器支持的格式一致。若格式不匹配,需进行转码处理。

  2. 检查解码器配置:确保解码器已正确初始化,并配置为与视频流格式相符的参数。解码器配置错误或未初始化可能导致视频数据无法正确解码。

  3. 验证显示配置:检查显示组件的配置,确保显示分辨率、帧率等参数与视频流匹配。显示配置不当可能导致视频无法正常显示。

  4. 资源同步:确保视频数据抓取、解码及显示过程中的资源同步。资源不同步可能导致视频数据丢失或显示异常。

  5. 更新系统库:检查并更新HarmonyOS系统库,确保所有相关组件均为最新版本。系统库更新可能包含对视频处理问题的修复。

  6. 日志分析:查看系统日志,分析视频数据抓取、解码及显示过程中的错误信息。日志分析有助于定位问题根源。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部