zoukankan      html  css  js  c++  java
  • DShow实现一个avi视频的播放(含有个人解释和注释)

    此项目为win32下的控制台C++代码(别忘记配置DShow库)

     1 // movie_test.cpp : 定义控制台应用程序的入口点。
     2 //
     3 #include "stdafx.h"
     4 #include <DShow.h>
     5 
     6 #pragma comment(lib,"strmiids.lib")        // 也可以在属性里面添加
     7 
     8 int _tmain(int argc, _TCHAR* argv[])
     9 {
    10     IGraphBuilder *pGraph = NULL;          // 图标管理器接口
    11     IMediaControl *pControl = NULL;        // 媒体控制器接口
    12     IMediaEvent *pEvent = NULL;           // 媒体事件接口
    13 
    14     // 初始化com库
    15     HRESULT hr = CoInitialize(NULL);
    16     if(FAILED(hr))
    17     {
    18         printf("初始化com组件失败
    ");
    19         return -1;
    20     }
    21 
    22     // 创建滤波器链表管理器
    23     hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void **)&pGraph);
    24     if(FAILED(hr))
    25     {
    26         printf("初始化com组件失败
    ");
    27         return -1;
    28     }
    29 
    30     //查询媒体控制和媒体事件接口
    31     hr = pGraph->QueryInterface(IID_IMediaControl,(void **)&pControl);
    32     hr = pGraph->QueryInterface(IID_IMediaEvent,(void **)&pEvent);
    33 
    34     //建立链表,这里用户可以更改待播放的文件的名称
    35     hr = pGraph->RenderFile(L"E:\DXSDK\DXSDK 9.0B\Samples\Media\ruby.avi",NULL);
    36     if(SUCCEEDED(hr))
    37     {
    38         //运行链表
    39         hr = pControl->Run();
    40         if(SUCCEEDED(hr))
    41         {
    42             //等待回放结束
    43             long evCode;
    44             pEvent->WaitForCompletion(INFINITE,&evCode);
    45             // 切记:在实际应用中,不能使用INFINITE标识,因为他会不确定的阻塞程序
    46         }
    47     }
    48 
    49     // 释放所有资源
    50     pControl->Release();
    51     pEvent->Release();
    52     pGraph->Release();
    53     CoUninitialize();
    54     printf("this is example
    ");
    55     return 0;
    56 }
  • 相关阅读:
    Unity 3D:控制相机旋转、移动、缩放等功能
    电子公文传输系统验收3-开发环境
    冲刺 day7
    电子公文传输系统2-贡献排序
    程序运行
    实验三-电子公文传输系统1-个人贡献
    thread同步测试
    第五章学习总结
    第三周学习java第四章学习总结及体会!
    第一章学习过程问题小结
  • 原文地址:https://www.cnblogs.com/orange1438/p/4161732.html
Copyright © 2011-2022 走看看