微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IMFSinkWriter:该请求无效,因为已调用Shutdown

如何解决IMFSinkWriter:该请求无效,因为已调用Shutdown

只需测试一些简单的音频到mp3内容

我正在尝试使用IMFSinkWriter对音频进行实际编码并将其保存到磁盘。

我什至无法正确创建IMFSinkWriter。 这一定是一个菜鸟问题或一个非常奇怪的错误...

#include <iostream>
#include <mfidl.h>
#include <Mfreadwrite.h>
#pragma comment(lib,"Mfreadwrite.lib")
int main()
{
    IMFSinkWriter* pSinkWriter;
    HRESULT hr = CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);
    std::cout << std::system_category().message(hr) << "\n";
    hr = MFCreateSinkWriterFromURL(L"Recording.mp3",NULL,&pSinkWriter);
    std::cout << std::system_category().message(hr) << "\n";
    system("pause");
}

输出

操作成功完成。

该请求无效,因为已调用Shutdown()。

按任意键继续。 。

我可能需要调用“ CoCreateInstance(__ uuidof(SOMETHING),NULL,CLSCTX_ALL,__ uuidof(IMFSinkWriter),(void **)&pSinkWriter);”,但是我不确定应该是什么东西,或由其他原因引起的可能是。

谢谢。

解决方法

需要调用“ MFStartup(MF_VERSION)”:

IMFSinkWriter* pSinkWriter;
HRESULT hr = CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);
std::cout << std::system_category().message(hr) << "\n";
hr = MFStartup(MF_VERSION);
std::cout << std::system_category().message(hr) << "\n";
hr = MFCreateSinkWriterFromURL(L"Recording.mp3",NULL,&pSinkWriter);
std::cout << std::system_category().message(hr) << "\n";
system("pause");

输出:

操作成功完成。

操作成功完成。

操作成功完成。

按任意键继续。 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。