利用Visual C#开发一个媒体播放器

http://tech.ddvip.com   2006年08月02日    社区交流

本文详细介绍利用Visual C#开发一个媒体播放器

  看见上面那个 UpdateStatusBar();这里是让它没100ms更新一次状态栏.

  代码如下:

  private void UpdateStatusBar()
{
 switch (m_CurrentStatus)
 {
  case MediaStatus.None : statusBarPanel1.Text = "Stopped"; break;
  case MediaStatus.Paused : statusBarPanel1.Text = "Paused "; break;
  case MediaStatus.Running: statusBarPanel1.Text = "Running"; break;
  case MediaStatus.Stopped: statusBarPanel1.Text = "Stopped"; break;
 }
 if (m_objMediaPosition != null)
 {
  int s = (int) m_objMediaPosition.Duration;
  int h = s / 3600;
  int m = (s - (h * 3600)) / 60;
  s = s - (h * 3600 + m * 60);
  statusBarPanel2.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", h, m, s);
  s = (int) m_objMediaPosition.CurrentPosition;
  h = s / 3600;
  m = (s - (h * 3600)) / 60;
  s = s - (h * 3600 + m * 60);
  statusBarPanel3.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", h, m, s);
 }
 else
 {
  statusBarPanel2.Text = "00:00:00";
  statusBarPanel3.Text = "00:00:00";
 }
}

  还有一个问题程序怎么能够知道它播放完了?

  这会有点麻烦了,想想看有什么办法呢?对了,windows是消息驱动的。那找找看有什么消息。有的就EC_COMPLETE。还记得"WndProc" 它吗?是的,我的老朋友,这次我们必须要改写它来捕获EC_COMPLETE消息。这个消息是DirectShow通知父窗体,播放结束了。

作者:黎宇    责编:豆豆技术应用

正在加载评论...