用DirectShow实现音视频文件的播放
2010-02-28 10:02
435 查看
现在的Windows对多媒体文件暴露的API一般都转向原来DirectX方式的。DirectShow原来是DirectX中的组件,现在已经转移到Windows SDK的组件了。用它来实现多媒体文件的播放与操作具有很好的性能。下面的代码示例就用它播放一个".wav"文件,如果是.wmv, .avi文件,则会自动跳出播放窗口进行对视频的播放。
代码
#include<windows.h>
#include<dshow.h>
void main(){
CoInitialize(NULL); //因为要使用COM组件,所以要初始化
IGraphBuilder *pGraph=NULL; //核心接口
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void**)&pGraph);
IMediaControl *pCtrl=NULL; //用于控制媒体流的接口
IMediaEvent *pEvent=NULL; //触发媒体流事件,如播放结束等
pGraph->QueryInterface(IID_IMediaControl, (void**)&pCtrl);
pGraph->QueryInterface(IID_IMediaEvent, (void**)&pEvent);
pGraph->RenderFile(L"C:\\WINDOWS\\Media\\tada.wav", NULL);
pCtrl->Run();
long eCode;
pEvent->WaitForCompletion(INFINITE, &eCode);
pEvent->Release();
pCtrl->Release();
pGraph->Release();
CoUninitialize();
}
上面编译运行后,需要加 strmiids.lib库进行链接。
下面是DirectShow的结构图:
![](http://b23.photo.store.qq.com/http_imgload.cgi?/rurl4_b=624e0f582eec5505a661ec44b0cd301018a88e102097591e130328d979127b4b74f70191f7e60192bd1a0bbe125462a63cacd6a65a974d876d03092aa2229eef1bf2810d955466fb2de5b5d4c345a270811b2c60)
具体内容可以参考SDK文档
代码
#include<windows.h>
#include<dshow.h>
void main(){
CoInitialize(NULL); //因为要使用COM组件,所以要初始化
IGraphBuilder *pGraph=NULL; //核心接口
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void**)&pGraph);
IMediaControl *pCtrl=NULL; //用于控制媒体流的接口
IMediaEvent *pEvent=NULL; //触发媒体流事件,如播放结束等
pGraph->QueryInterface(IID_IMediaControl, (void**)&pCtrl);
pGraph->QueryInterface(IID_IMediaEvent, (void**)&pEvent);
pGraph->RenderFile(L"C:\\WINDOWS\\Media\\tada.wav", NULL);
pCtrl->Run();
long eCode;
pEvent->WaitForCompletion(INFINITE, &eCode);
pEvent->Release();
pCtrl->Release();
pGraph->Release();
CoUninitialize();
}
上面编译运行后,需要加 strmiids.lib库进行链接。
下面是DirectShow的结构图:
具体内容可以参考SDK文档
相关文章推荐
- 用DirectShow实现音视频文件的播放
- 如何实现wireshark抓包视频数据文件的正常播放
- C#使用DirectShow播放视频文件 [转]
- 网页嵌入快播播放器并实现服务器视频文件连续播放
- 利用DirectShow实现对视频文件H264编码与解码基类
- 快捷键实现启动指定播放器播放指定路径视频文件
- 如何实现videoView的自动连续播放视频文件
- 利用DirectShow实现对视频文件H264编码与解码基类
- 网页嵌入快播播放器并实现服务器视频文件连续播放
- 利用DirectShow实现对视频文件H264编码与解码基类 2
- 怎样在EVC4.0下编程实现音频和视频文件的的播放
- html5结合flash实现视频文件在所有主流浏览器兼容播放
- 利用DirectShow实现对视频文件H264编码与解码基类
- Directshow+WMF(Windows Media Format)实现无缝播放视频
- Android模拟器中实现音、视频文件的断点播放
- html制作简单框架网页二 实现自己的影音驿站 操作步骤及源文件下载 (可播放mp4、avi、mpg、asx、swf各种文件的视频播放代码)
- 用DirectShow,在vc下播放音视频文件
- html5结合flash实现视频文件在所有主流浏览器兼容播放
- 利用DirectShow实现对视频文件H264编码与解码基类 3
- 利用DirectShow实现对视频文件H264编码与解码基类 2