如何获取当前设备所有编码器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
来实现。具体步骤如下:
-
引入相关头文件:
#include <avcapability_manager.h>
-
获取
AVCapabilityManager
实例:OH_AVCapabilityManager *capabilityManager = OH_AVCapabilityManager_GetInstance();
-
获取设备支持的编码器列表:
OH_AVCapability **capabilities = nullptr; int32_t count = 0; OH_AVCapabilityManager_GetCapabilities(capabilityManager, OH_MEDIA_TYPE_VIDEO, OH_CODEC_TYPE_ENCODER, &capabilities, &count);
-
遍历编码器列表,获取每个编码器的详细信息:
for (int32_t i = 0; i < count; ++i) { OH_AVCapability *capability = capabilities[i]; const char *name = OH_AVCapability_GetName(capability); // 其他详细信息可以通过OH_AVCapability_GetXXX系列函数获取 }
-
释放资源:
OH_AVCapabilityManager_ReleaseCapabilities(capabilityManager, capabilities, count);
通过以上步骤,可以获取当前设备支持的所有编码器OH_AVCapability
,并获取每个编码器的详细信息。