开发应用程序

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

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

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

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

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