以下是一个简单的示例,展示了如何使用 IMediaControl 接口来控制媒体播放:
#include <windows.h>
#include <dshow.h>
// 链接 DirectShow 库
#pragma comment(lib, "strmiids.lib")
int main() {
// 初始化 COM 环境
CoInitialize(NULL);
// 创建过滤器图形管理器
IGraphBuilder *pGraph = NULL;
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&pGraph);
// 通过图形管理器创建媒体控制接口
IMediaControl *pMediaControl = NULL;
pGraph->QueryInterface(IID_IMediaControl, (void**)&pMediaControl);
// 加载媒体文件
WCHAR wszPath[MAX_PATH] = L"your_media_file_path_here";
IGraphBuilder_AddSourceFilter(pGraph, wszPath, NULL, NULL);
// 开始播放
pMediaControl->Run();
// 等待播放结束
LONG state;
pMediaControl->GetState(INFINITE, &state);
// 释放资源
pMediaControl->Release();
pGraph->Release();
// 反初始化 COM 环境
CoUninitialize();
return 0;
}
请确保在项目中正确链接 strmiids.lib 库,以便使用 DirectShow 相关功能。此示例只是一个简单的演示,实际使用中可能需要更多的错误处理和其他功能。
转载请注明出处:http://www.zyzy.cn/article/detail/25102/Win32 API/Control.h/IMediaControl