mediaPlayer的使用技巧

1.隐藏操作按钮(修改属性):

   MPlayer.uiMode = "none";        //去掉播放器的控制条

2.自动操作:

  MPlayer.settings.autoStart = true;            //设置自动播放
  MPlayer.settings.setMode("loop", true);     //设置循环播放

3.列表操作:

            IWMPPlaylist playList = player.playlistCollection.newPlaylist("MyPlayList"); //新建列表
            IWMPMedia media;
            foreach (DataRow drItem in MusicSettings.DtMusic.Rows)
            {
                media = player.newMedia(drItem["路径"].ToString()); //参数为歌曲路径
                playList.appendItem(media);
            }
            player.currentPlaylist = playList;
            player.Ctlcontrols.play();    //开始播放

4.其他属性 参考
URL:String; 指定媒体位置,本机或网络地址

uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible(不计大小写)

playState:integer; 播放状态。这个属性改变时同时引发PlayStateChange事件与StateChange事件。

取值范围为枚举型:WMPLib.WMPPlayState,它的成员如下:

wmppsUndefined = 0;   //未知状态
  wmppsStopped = 1;    //播放停止
  wmppsPaused = 2;     //播放暂停
  wmppsPlaying = 3;     //正在播放
  wmppsScanForward = 4;   //向前搜索
  wmppsScanReverse = 5;   //向后搜索
  wmppsBuffering = 6;     //正在缓冲
  wmppsWaiting = 7;      //正在等待流开始
  wmppsMediaEnded = 8;    //播放流已结束
  wmppsTransitioning = 9;    //准备新的媒体文件
  wmppsReady = 10;      //播放准备就绪
  wmppsReconnecting = 11;   //尝试重新连接流媒体数据
  wmppsLast = 12;       //上一次状态,状态没有改变
  在PlayStateChange中写代码可以防止播放rmvb等非默认类型的问题(用wmppsReady)。

enableContextMenu:Boolean;    启用/禁用右键菜单

fullScreen:boolean;         是否全屏显示

//播放器基本控制

Ctlcontrols.play; 播放
  Ctlcontrols.pause; 暂停
  Ctlcontrols.stop; 停止
  Ctlcontrols.currentPosition:double; 当前进度
  Ctlcontrols.currentPositionString:string; 当前进度,字符串格式。如“00:23”
  Ctlcontrols.fastForward; 快进
  Ctlcontrols.fastReverse; 快退
  Ctlcontrols.next; 下一曲
  Ctlcontrols.previous; 上一曲

[settings] wmp.settings //播放器基本设置

settings.volume:integer; 音量,0-100
  settings.autoStart:Boolean; 是否自动播放
  settings.mute:Boolean; 是否静音
  settings.playCount:integer; 播放次数
  //顺序播放
  wmp.settings.setMode(“shuffle”, False)
  //随机播放
  wmp.settings.setMode(“shuffle”, True)
  //循环播放
  wmp.settings.setMode(“loop”, True)

[currentMedia] wmp.currentMedia //当前媒体属性

currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,“Author”=艺术家,“Copyright”=版权信息,“Description”=媒体内容描述, “Duration”=持续时间(秒),“FileSize”=文件大小,“FileType”=文件类型,“sourceURL”=原始地址
currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
currentMedia.name:string; 同 currentMedia.getItemInfo(“Title”)

[currentPlaylist] wmp.currentPlaylist //当前播放列表属性

currentPlaylist.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
axWindowsMediaPlayer1.currentMedia.sourceURL; //获取正在播放的媒体文件的路径
axWindowsMediaPlayer1.currentMedia.name; //获取正在播放的媒体文件的名称
axWindowsMediaPlayer1.Ctlcontrols.Play          播放
axWindowsMediaPlayer1.Ctlcontrols.Stop          停止
axWindowsMediaPlayer1.Ctlcontrols.Pause          暂停
axWindowsMediaPlayer1.Ctlcontrols.PlayCount        文件播放次数
axWindowsMediaPlayer1.Ctlcontrols.AutoRewind       是否循环播放 (无效)
axWindowsMediaPlayer1.Ctlcontrols.Balance         声道
axWindowsMediaPlayer1.Ctlcontrols.Volume         音量
axWindowsMediaPlayer1.Ctlcontrols.Mute          静音
axWindowsMediaPlayer1.EnableContextMenu    是否允许在控件上点击鼠标右键时弹出快捷菜单
axWindowsMediaPlayer1.Ctlcontrols.AnimationAtStart     是否在播放前先播放动画(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowControls       是否显示控件工具栏(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowAudioControls    是否显示声音控制按钮(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowDisplay       是否显示数据文件的相关信息(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowGotoBar       是否显示Goto栏(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowPositionControls   是否显示位置调节按钮(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowStatusBar      是否显示状态栏(无效)
axWindowsMediaPlayer1.Ctlcontrols.ShowTracker       是否显示进度条(无效)
axWindowsMediaPlayer1.Ctlcontrols.FastForward        快进
axWindowsMediaPlayer1.Ctlcontrols.FastReverse        快退
axWindowsMediaPlayer1.Ctlcontrols.Rate           快进/快退速率
axWindowsMediaPlayer1.AllowChangeDisplaySize  是否允许自由设置播放图象大小(无效)
axWindowsMediaPlayer1.DisplaySize       设置播放图象大小(无效)
1-MpDefaultSize         原始大小
2-MpHalfSize           原始大小的一半
3-MpDoubleSize         原始大小的两倍
4-MpFullScreen          全屏
5-MpOneSixteenthScreen      屏幕大小的1/16
6-MpOneFourthScreen       屏幕大小的1/4
7-MpOneHalfScreen        屏幕大小的1/2
axWindowsMediaPlayer1.ClickToPlay    是否允许单击播放窗口启动Media Player

在视频播放之后,可以通过如下方式读取源视频的宽度和高度,然后设置其还原为原始的大小.
private void ResizeOriginal()
{
int intWidth = axWindowsMediaPlayer1.currentMedia.imageSourceWidth;
int intHeight = axWindowsMediaPlayer1.currentMedia.imageSourceHeight;
axWindowsMediaPlayer1.Width = intWidth + 2;
axWindowsMediaPlayer1.Height = intHeight + 2;
}

5.Ctlcontrols属性

Ctlcontrols属性是AxWindowsMediaPlayer的一个重要属性, 此控件中有许多常用成员。
(1) 方法play
用于播放多媒体文件,其格式为:
窗体名.控件名.Ctlcontrols.play()
如: AxWindowsMediaPlayer1.Ctlcontrols.play()  ‘此处缺省窗体名是Me
(2) 方法pause
用于暂停正在播放的多媒体文件,其格式为:
窗体名.控件名.Ctlcontrols.pause()
如: AxWindowsMediaPlayer1.Ctlcontrols.pause()
(3) 方法stop
用于停止正在播放的多媒体文件,其格式为:
窗体名.控件名.Ctlcontrols.stop()
如: AxWindowsMediaPlayer1.Ctlcontrols.stop()
(4) 方法fastforward
用于将正在播放的多媒体文件快进,其格式为:
窗体名.控件名.Ctlcontrols.fastforward()
如: AxWindowsMediaPlayer1.Ctlcontrols.forward()
(5) 方法fastreverse
窗体名.控件名.Ctlcontrols.fastreverse()
如: AxWindowsMediaPlayer1.Ctlcontrols.fastreverse()
6. 属性CurrentPosition
用于获取多媒体文件当前的播放进度,其值是数值类型,使用格式为:
窗体名.控件名.Ctlcontrols.currentPosition
d1 =AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
其中d1 是一个整型变量。
7. 属性Duration
用于获取当前多媒体文件的播放的总时间,其值为数值类型,其使用格式为:
窗体名.控件名.currentMedia.duration
如:d2 =AxWindowsMediaPlayer1.currentMedia.duration
其中d2是一个整型变量。
对WMP的感叹
感叹一
这是我找到的关于WMP的最全的中文资料了。刚才又查了一下,查到了MSDN有更全的API文档,终于找到它了。上面的资料基本上够用了,但是,如果要写一个更为精致的播放器,这些还不够啊。看MSDN去也。WMP11在MSDN中的位置如下:
win32和COM开发-Griphics And MultiMedia-Audio And Vedio-Windows Media Player 11 SDK
看了一个晚上的MSDN与资料。发现MSDN上关于WMP SDK的文档也很不扎实。没有实例。我要找的答案都不在上面。唯一的收获是晓得了wpl。wmp有自己的播放列表文件,但是,我查遍msdn,发现sdk 并不提供手动保存播放列表的任何方法。所以,现在的问题是,我们创建了一个IWMPPlayList,但是,这个接口不提供任何保存的方法,结果。 newPlayList(name,path)只提供打开一个已有列表。郁闷。查了英文资料。老外建议用:StreamWrite/StreamRead 的办法来读写wpl,我也看了。事实上wpl是一个xml文件。我们可以用System.Xml中的API来读写。不过,sdk中的这个漏子我始终无法释 怀。
感叹二
从WMP8开始就不支持mms/rtsp协议了,所用wmp.URL="mms://xxxx";是不行的了。点此处见详情,而mms这个协议现在还在广泛使用。郁闷。因此,我们不能使用wmp来看网络电视了。

重要参数:
https://www.cnblogs.com/wanzhongjun/p/6274350.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值