如何获取当前设备所有编码器OH_AVCapability(HarmonyOS 鸿蒙Next)

如何获取当前设备所有编码器OH_AVCapability(HarmonyOS 鸿蒙Next) 看了一下,现在只能通过 OH_AVCodec_GetCapabilityByCategory 接口获取一个推荐的编码器

是否有类似Android 的 MediaCodecList 可以获取所有的编码器,然后用户自己去通过一些业务判断选择用哪个?

还是说,其实现在鸿蒙h264只有 OMX.hisi.video.encoder.avc 硬编码,hevc 只有 OMX.hisi.video.encoder.hevc 硬编码,根本不用选??

2 回复

文档中目前没有获取所有编码器的接口。

更多关于如何获取当前设备所有编码器OH_AVCapability(HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,获取当前设备所有编码器OH_AVCapability可以通过使用多媒体能力管理模块AVCapabilityManager来实现。具体步骤如下:

  1. 引入相关头文件:

    #include <avcapability_manager.h>
    
  2. 获取AVCapabilityManager实例:

    OH_AVCapabilityManager *capabilityManager = OH_AVCapabilityManager_GetInstance();
    
  3. 获取设备支持的编码器列表:

    OH_AVCapability **capabilities = nullptr;
    int32_t count = 0;
    OH_AVCapabilityManager_GetCapabilities(capabilityManager, OH_MEDIA_TYPE_VIDEO, OH_CODEC_TYPE_ENCODER, &capabilities, &count);
    
  4. 遍历编码器列表,获取每个编码器的详细信息:

    for (int32_t i = 0; i < count; ++i) {
        OH_AVCapability *capability = capabilities[i];
        const char *name = OH_AVCapability_GetName(capability);
        // 其他详细信息可以通过OH_AVCapability_GetXXX系列函数获取
    }
    
  5. 释放资源:

    OH_AVCapabilityManager_ReleaseCapabilities(capabilityManager, capabilities, count);
    

通过以上步骤,可以获取当前设备支持的所有编码器OH_AVCapability,并获取每个编码器的详细信息。

回到顶部