使用Mci指令打造你自己的媒体播放器

使用Mci指令打造你自己的媒体播放器
 
  电子科技大学软件学院03级 周银辉
             转载请注明出处

1.说明:
  网上mic的文章一大堆,但大多天下文章一大抄。这里说点实际的,在C#中如何使用它来做个播放器。

2.如何发送指令:
  /// <summary>
  /// 发送mci指令
  /// </summary>
  /// <param name="command">要发送的指令</param>
  /// <param name="returnString">返回串</param>
  /// <param name="returnLength">缓冲区大小</param>
  /// <param name="hwndCallBack">回调。一般设置为0</param>
  /// <returns></returns>
  [DllImport("winmm.dll",EntryPoint="mciSendString", CharSet=CharSet.Auto)]
  public static extern int mciSendString(string command, string returnString,
   int returnLength, int hwndCallBack);
这里的参数command就是我们要发送的指令
以后我们都是通过这个mcisendString函数发送指令进行媒体操作

3. 指令是什么样的?
   比sql语句还有简单,比如我们的音乐文件是 path = "c:\\my.mp3",现在我们要发送一条指令打开该文件以便以后播放它,那么我们的指令就是 command = "open \"" +path+ "\"" +" alias song";注意path两边要有引号扩起来,这表示它是一个参数(这与命令行参数类似),alias 是取别名,我们将 
"c:\\my.mp3"取了一个别名叫做song,这样我们以后就可以针对song进行操作了

4. 最简单的: 打开 -> 播放 -> 关闭

   /// <summary>
  /// 打开指定的音乐文件
  /// 打开时别名为song
  /// </summary>
  /// <param name="path">文件的完整路径</param>
  public void Open(string path)
  {
   if(!File.Exists(path))
   {
    MessageBox.Show("文件不存在\n"+path);
    return;
   }

   MciPlayer.mciSendString("close all","",0,0);
   MciPlayer.mciSendString("open \"" +path+ "\"" +" alias song", "", 0,0);            

  }

   /// <summary>
  /// 从头播放MciPlayer.Open打开的文件,请先确保文件已经打开
  /// </summary>
  public void Play()
  {
   MciPlayer.mciSendString("play song", "", 0, 0);
  }

   /// <summary>
  /// 停止播放
  /// </summary>
  public void Stop()
  {
   MciPlayer.mciSendString("stop song", "", 0, 0);
   MciPlayer.mciSendString("close song","", 0, 0);
  }

5. 更多的
   mci指令很多,包括视频控制等,可以说是庞杂,但幸运的是你可以在msdn中不使用筛选器,在索引中输入MCI Command Strings便能查找到相关的信息

  这是我做的一个简单的播放器(支持视频)
 player_mini.bmp
如果需要源代码的话,可以email: yinhui_zhou@yahoo.com.cn

 

posted @ 2006-05-04 10:14  周银辉  阅读(896)  评论(0编辑  收藏  举报