HarmonyOS 鸿蒙Next应用在视频播放时未使用平台的视频硬件编解码器

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

HarmonyOS 鸿蒙Next应用在视频播放时未使用平台的视频硬件编解码器

应用上架后,客服反馈未使用视频硬件编解码器的问题。目前应用内的视频使用Video组件播放,如果使用AVPlayer开发视频播放功能,AVPlayer是否默认使用硬解码器,能解决此问题?还是说只能调用C/C++ 的相关API?对C/C++ 语言使用困难,如何解决此问题?是否有相关demo。

2 回复
目前能力检测只是只是优化建议,不影响上架。

建议调用OH_AVCodec相关接口实现使用视频硬件编解码器处理视频

参考demo:

// 通过codecname创建解码器, 应用有特殊需求,比如选择支持某种分辨率规格的解码器,可先查询capability,再根据codec name创建解码器。
OH_AVCapability * capability = OH_AVCodec_GetCapability(OH_AVCODEC_MIMETYPE_VIDEO_AVC, false);
const char *name = OH_AVCapability_GetName(capability);
// 通过mimetype创建解码器 
// 硬解: 创建 H264解码器,存在多个可选解码器时,系统会创建最合适的解码器 
OH_AVCodec * videoDec = OH_VideoDecoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_AVC); 
// 硬解: 创建H265解码器 
OH_AVCodec *videoDec = OH_VideoDecoder_CreateByMime(OH_AVCODEC_MIMETYPE_VIDEO_HEVC);

参考文档:  https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-video-codec-V5 

还可参考这个demo:https://gitee.com/kairen-13/video-codec-sample

针对HarmonyOS 鸿蒙Next应用在视频播放时未使用平台的视频硬件编解码器的问题,以下提供解决方案:

HarmonyOS系统提供了强大的多媒体框架和API,以支持视频硬件编解码器的使用。在开发过程中,确保通过正确的API调用,如使用OH_AVCodec相关接口或MediaCodec类,来创建和使用视频硬件编解码器。此外,可以检查应用是否配置了必要的编解码参数和格式,如MIME类型、分辨率等,以确保硬件编解码器能够正确工作。

同时,为了验证硬件编解码器是否已被启用,可以使用HDC Shell的top进程指令或DevEco Studio Profiler抓取systrace,观察av_codec_service进程的CPU负载率和状态,以确认视频硬解码是否已使能。

如果已按照上述方法操作但问题仍未解决,可能是由于应用代码中的其他逻辑错误或配置问题导致。此时,建议仔细排查代码,或参考HarmonyOS官方文档和开发者支持资源,以获取更详细的帮助和指导。

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

回到顶部