如何经过C#开发一个媒体播放器(中)

开发应用程序
  建立经过 PIA Framework 链接的 Player 控件实例以后,您能够向窗体中添加所需的其余元素,并编写完成实际操做的代码。
添加 Windows 窗体控件

   1. View (视图)菜单中,单击 Designer 设计 器),或者单击 Solution Explorer (解决方案资源管理器)中的 View Designer (视图设计器)按钮,切换到窗体设计器。

   2. 在窗体上增长文件、播放、信息等菜单。

   3. 在工具箱的 Windows Forms Windows 窗体)面板中,为您的窗体添加一个工具栏、一个状态栏和图片 p_w_picpathList

   4. Properties (属性)窗口中,将工具栏的名称更改成 toolBar1 ,将在 Buttons 上增长 4 个按钮。状态栏的名称更改成 statusBar1, 并分别增长三个 Panel

   5. 在工具箱的面板中,为您的窗体添加一个面版 panel1

   6. 增长一个定时器 timer1

   7. 调整控件在窗体中的排列方式,使之符合您的须要并且方便用户使用。下图为 Visual Studio Designer (设计器)中完成后的窗体布局。

3

   编写代码

  如何打开你想要媒体文件 ?

  第一步是编写在 frmPlayMedia 中打开 Windows Media 文件的代码。要自动切换到 Code (代码)视图并编辑打开菜单的 Click 事件处理程序 (menuItem2_Click) 的代码,请双击窗体上的 工具栏 按钮。将如下代码添加到事件处理程序中:

  还记得吗 " 文件 -> 打开 ..." 是的几乎每一个使用 windows 的人都会这样操做 . 如何实现 ?

  很简单看看下面的代码 :
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.wav;*.mp2;*.mp3|All Files|*.*";
if (DialogResult.OK == openFileDialog.ShowDialog())
{
….
}

  看吧很简单是吗?记得写一个函数把它放进去。当你点击 OK 按钮的时候, DirectShow 接口就会获得你想要播放的文件。下图解释了它是如何工做的。

   DirectShow 为多媒体流回放提供最基本的服务,这些多媒体流能够是本地文件,还能够是 服务器 传输过来的。特别的, DirectShow 能够支持 视频 回放,支持以不一样的文件和流格式压缩视频内容,包括 Windows Media MPEG AVI WAV

  在 DirectShow 的核心处,服务是组件的模块化集合,称为过滤器,能够根据媒体类型排列成过滤器图。过滤器能够操做数据流,如读入、分析、解码、格式化或渲染。
  • 过滤器以树型进行排列,这棵树称为过滤器树,经过过滤器树管理器(Filter Graph Manager,简称FGM)进行管理。使用FGM应用程序能够经过使用Microsoft Windows Media Player控件间接控制过滤器树,还能够经过调用COM接口方法直接控制。DirectShow过滤器树(参阅图1)由从源到目标渲染器的有向过滤器序列组成,全部这些经过输入和输出过滤器引脚链接。过滤器引脚协商它们将支持哪些媒体类型。FGM控制树过滤器之间的多媒体数据流。由于DirectShow有一个灵活的、可重配置的过滤器树体系结构,所以DirectShow可使用一样的软件成分支持多种媒体类型的回放和分流。开发人员还能够经过编写本身的过滤器扩展DirectShow多媒体支持。

      过滤器


      过滤器是注册的DirectShow类,它执行许多媒体信息处理任务。这些任务包括:


       得到源信息(例如,得到媒体流
    )
       分析(例如,在流上执行包读入、分离和格式化
    )
       转换(例如,解码WMAMPEG-4音频和视频
    )
       渲染(例如,在适当的时候产生音频PCM或者视频RGB/YUV输出,将数据传给DirectSound
    DirectDraw)

      过滤器使用几种类型的接口,例如引脚、计数器、传送器和时钟接口,来执行它们的任务。过滤器实现和开放了许多接口。FGM可使用这些接口建立、链接和控制树。过滤器常常实现包含下列方法的IBaseFilter接口:


       运行、中止和暂停过滤器状态。

       恢复过滤器和厂商信息。

       获得和设置参考时钟。

       恢复过滤器状态信息。

       枚举过滤器引线。

       重建过滤器树时定位引脚


      用户单击打开时,这段代码将显示一个对话框,供用户在计算机上浏览并选择要播放的 .wma .wmv 文件。用户选择文件(并单击肯定)时,代码将 Player URL 属性设置为用户选择的文件。因为 Player autoStart 属性在默认状况下设置为 True,因此 Player 当即打开并播放用户选择的数字媒体文件。
相关文章
相关标签/搜索