利用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通知父窗体,播放结束了。
作者:黎宇 责编:豆豆技术应用