我的项目正在使用 MediaFoundation 的 Source Reader 来捕获和预览摄像机,但在使用 EVR 呈现视频时遇到以下问题。
代码:
#include <evr.h>
#include <mfapi.h>
#include <mfidl.h>
#include <mfreadwrite.h>
#include <mferror.h>
#pragma comment(lib, "evr.lib")
#pragma comment(lib, "mf.lib")
#pragma comment(lib, "mfplat.lib")
#pragma comment(lib, "mfplay.lib")
#pragma comment(lib, "mfreadwrite.lib")
#pragma comment(lib, "mfuuid.lib")
...
IMFGetService *pGetService = NULL;
IMFVideoDisplayControl* pVideoDisplayControl = nullptr;
pGetService->GetService(MR_VIDEO_RENDER_SERVICE, IID_IMFVideoDisplayControl, (void**)&pVideoDisplayControl);
...
错误:
LNK2001 unresolved external symbol MR_VIDEO_RENDER_SERVICE
LNK2001 unresolved external symbol IID_IMFVideoDisplayControl
如何解决这个问题?
这个问题研究了2天了,还没解决。
您必须添加
#pragma comment(lib, "strmiids.lib")
您可以在
IMFVideoDisplayControl
接口的任何方法中看到它的记录(可惜不在接口本身上......),例如 IMFVideoDisplayControl::GetVideoPosition