C# 调用Widows MediaPlayer方法以及可能出现错误处理

来源:互联网 发布:数据库订单管理系统 编辑:程序博客网 时间:2024/06/05 15:59

右键点击工具箱中某个选项卡-->选择项...-->然后在com组件中找到windows media player在前面的复选框中打钩,然后点击确定就能把该控件添加到选项卡里了,使用方法跟其他控件一样,直接拖放到from中就可以了

如果找不到或是出现错误“自动注册失败”时:

处理一:

可能是操作系统的原因,你的系统是64位的吧?我也郁闷了一天,最后注册了一下64位的wmp.dll就可以了,具体步骤如下:

  1. 打开命令行界面;

  2. 切换到C:\Windows\SysWOW64目录;

  3. 注册wmp.dll;


截图如下:


处理二:

如果你的电脑本身就是32位的操作系统,那么操作如下:

一、打开CMD命令执行界面

二、输入:

c:

cd: C:\Windows\System 32

regsvr32 wmp.dll 即可



以上步骤完成后就可以使用Windows自带的播放器了

使用方法:

  1. public partial class VedioForm : Form  
  2. {  
  3.         private AxWMPLib.AxWindowsMediaPlayer axWindowsMediaPlayer1;  
  4.         public VedioForm()  
  5.         {  
  6.             InitializeComponent();   
  7.         }  
  8.         private void VedioForm_Load(object sender, EventArgs e)  
  9.         {   
  10.             InitVedioUrl();  
  11.             InitEvent();  
  12.         }  
  13.         //初始化播放控件的视频文件地址  
  14.         protected void InitVedioUrl()  
  15.         {  
  16.             this.axWindowsMediaPlayer1.URL = @"D:/Vedio/default.wmv";  
  17.         }  
  18.           
  19.           
  20.         protected void InitEvent()  
  21.         {  
  22.             axWindowsMediaPlayer1.StatusChange += new EventHandler(axWindowsMediaPlayer1_StatusChange);  
  23.         }  
  24.           
  25.         //通过控件的状态改变,来实现视频循环播放  
  26.         protected void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e)  
  27.         {  

  28.        //判断视频是否已停止播放  
  29.             if ((int)axWindowsMediaPlayer1.playState == 1)  
  30.             {  
  31.                 //停顿2秒钟再重新播放  
  32.                 System.Threading.Thread.Sleep(2000);  
  33.         //重新播放  
  34.                 axWindowsMediaPlayer1.Ctlcontrols.play();  
  35.             }  
  36.         }  
  37.     }  
  38. }

其他控制函数:

[基本属性]

URL:string 可以指定媒体位置

enableContextMenu:Boolean 显示/不显示播放位置的右键菜单

fullScreen:boolean 全屏显示

stretchToFit:boolean 非全屏状态时是否伸展到最佳大小

uMode:string 播放器的模式,full:有下面的控制条; none:只有播放部份没有控制条

playState:integer 当前控件状态,状态变化时会触发OnStatusChange事件

 

[controls]

可通过WindowsMediaPlayer.controls对播放器进行控制并取得相关的一些信息:

controls.play; 播放

controls.stop; 停止

controls.pause; 暂停

controls.currentPosition:Double 当前播放进度

controls.currentPositionString:string 时间格式的字符串 “0:32″

 

[currentMedia]

可以通过WindowsMediaPlayer.currentMedia取得当前媒体的信息

currentMedia.duration Double 总长度

currentMedia.durationString 时间格式的字符串 “4:34″

 

[settings]

可以通过WindowsMediaPlayer.settings对播放器进行设置,包括音量和声道等。

settings.volume:integer 音量 (0-100)

settings.balance:integer 声道,通过它应该可以进行立体声、左声道、右声道的控制。

 

Media Player Player.playState获取播放状态事件

Value State Description

0 Undefined Windows Media Player is in an undefined state.(未定义)

1 Stopped Playback of the current media item is stopped.(停止)

2 Paused Playback of the current media item is paused. When a media item is paused, resuming playback begins from the same location.(停留)

3 Playing The current media item is playing.(播放)

4 ScanForward The current media item is fast forwarding.

5 ScanReverse The current media item is fast rewinding.

6 Buffering The current media item is getting additional data from the server.(转换)

7 Waiting Connection is established, but the server is not sending data. Waiting for session to begin.(暂停)

8 MediaEnded Media item has completed playback. (播放结束)

9 Transitioning Preparing new media item.

10 Ready Ready to begin playing.(准备就绪)

11 Reconnecting Reconnecting to stream.(重新连接)


以上就是对Windows MediaPlayer的基本操作

未经允许,不得转载!

0 0
原创粉丝点击