媒体基础库中的 UWP AAC 编码,未注册类
Posted
技术标签:
【中文标题】媒体基础库中的 UWP AAC 编码,未注册类【英文标题】:UWP AAC encode in Media Foundation library, Class not registered 【发布时间】:2020-05-14 02:05:51 【问题描述】:我想在 UWP/Win10 中使用 AACEncode MFT。
https://docs.microsoft.com/en-us/windows/win32/medfound/aac-encoder
我在 wmcodecdsp.h 中找到 有一些定义
EXTERN_C const CLSID CLSID_AACMFTEncoder;
#ifdef __cplusplus
class DECLSPEC_UUID("93AF0C51-2275-45d2-A35B-F2BA21CAED00")
AACMFTEncoder;
#endif
所以.. 我尝试使用
EXTERN_GUID(CLSID_AACMFTEncoder, 0x93AF0C51, 0x2275, 0x45D2, 0xA3, 0x5B, 0xF2, 0xBA, 0x21, 0xCA, 0xED, 0x00);
Microsoft::WRL::ComPtr<IMFTransform> mftAudio_PCM_To_AAC;
hr = CoCreateInstance(CLSID_AACMFTEncoder, NULL, CLSCTX_INPROC_SERVER, IID_IMFTransform, &mftAudio_PCM_To_AAC);
我收到一个 hr 错误代码 "REGDB_E_CLASSNOTREG 类未注册"
表示我不能在 UWP 中使用 AAC 编码??
我还尝试手动将 mfAACEnd.dll 添加到我的 UWP 项目中。 还是不行……
寻求帮助,谢谢。
【问题讨论】:
在uwp中,您可以为AAC音频创建一个编码配置文件,然后转码。关于它的更多细节,你可以参考这个document,看看它是否能满足你的需求。 【参考方案1】:基于AAC Encoder的Requirements,提到了
它只支持桌面应用而不是 UWP 应用。
如果你想使用这个 api,你可以创建一个桌面应用程序,然后使用 MSIX Packaging Tool 或在 Visual Studio 中创建 Windows Application Packaging Project 将其转换为 UWP 应用程序。
【讨论】:
以上是关于媒体基础库中的 UWP AAC 编码,未注册类的主要内容,如果未能解决你的问题,请参考以下文章