大树下好乘凉

导航

COM组件Windows Media Player(一)(转)

 

最近这两天在研究COM组件中的Windows Media Player控件,在使用中发现了一些问题,在此总结下收获。
    以下转自两位达人博客:

一.控件的属性

[基本属性]  
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  

 

二、简易教程

    先从微软上下载Windows Media Player 10 SDK,然后安装,然后我们创建一个工程(废话!)
在这里不用担心别人的机子上不能用,因为需要的只是一个控件,而控件会自动复制到编译的目录里。好了,不说废话,我们继续……

创建工程以后我们打开工具箱,然后在工具箱的任意控件上点击鼠标的右键,然后再点击选择项,如下:

打点以后我们会看到选择工具箱列表,紧接着我们再点击COM组件,并寻找到Windows Media Player的组件,并勾选。如下图:

点击确定以后我们回到工具箱就会看到我们的工具箱里多出一个Windows Media Player的组件了。

现在我们将这个组件拖到我们的应用程序窗口上去

在控件上点击右键,修改这个控件的属性为



好了,我们就快要完成了,可以轻松一下,点支香烟放点音乐……(一会再关掉,为了测试)
现在我们需要调整控件的名称和这个控件的大小,这里先选择这个控件,然后再我们右边的属性里修改,修改Size为(0,0),把名字修改为(MusicPlayer)。



好了,基本上完成了,现在给我们的应用程序增加两个Button,一个为播放音乐,一个为停止音乐。

最后我们再给这两个Button增加相对应的事件就算完工了。呵呵!代码如下:



完工了……点击运行看看,是不是很简单,那就赶快自己试一下吧,心动不如行动!!!用这个方法我们可以很简单的打造一个自己的播放器哦,可以播放wmv、wav、mp3。

PS:其实有心的朋友在做的过程中还会发现,用这个控件还可以用来打造媒体播放器,更多的功能还得我们自己去尝试了哦,有新的发现别忘了共享你的经验!

 

posted on 2009-09-07 13:57  大树下好乘凉  阅读(1017)  评论(0编辑  收藏  举报