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

开发应用程序
  创建通过 PIA  Framework 连接的 Player 控件实例之后,您可以向窗体中添加所需的其他元素,并编写完成实际操作的代码。
添加 Windows 窗体控件

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

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

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

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

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

  6. 增加一个定时器timer1

  7. 调整控件在窗体中的排列方式,使之符合您的需要而且方便用户使用。下图为 Visual Studio Designer(设计器)中完成后的窗体布局。
如何通过C#开发一个媒体播放器(中)
 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 MediaMPEGAVIWAV 

  在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 立即打开并播放用户选择的数字媒体文件。



本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/202828,如需转载请自行联系原作者

上一篇:数据到hadoop的迁移


下一篇:启动mysql的innodb monitor功能