【笔记】使用WMP控件写一个简单播放器
c#没有提供用于播放音频的类可以直接使用,需要播放音乐或视频文件时候,我们可以使用第三方多媒体库或是第三方控件辅助播放,找来找去还是觉得用Windows Media Player控件来编写比较方便,下面说一下用法
在VS工具栏中,默认情况下是找不到Windows Media Player 控件的,使用windows media player 控件需要使用到两个库
AxInterop.WMPLib.dll 和 Interop.WMPLib.dll
最开始这两个库找了好久,有时候会发现版本不匹配不能用,后来发现,直接在工具栏添加控件,拖到窗口中,就会自动把这两个库复制到Debug文件夹中
从这里开始吧
1、在工具栏中,右键-选择项,选择COM组建,然后把Windows Media Player打钩,这样就添加进来了,然后拖到Form窗体中
2、这个Windows Media Player控件有点丑,我们可以删掉,在后台代码中创建,我们只是要使用这个控件来播放而已。下面是属性
播放,暂停,停止操作
this.axWindowsMediaPlayer1.URL = @"G:\Music\some one like you.mp3"; this.axWindowsMediaPlayer1.Ctlcontrols.play(); this.axWindowsMediaPlayer1.Ctlcontrols.pause(); this.axWindowsMediaPlayer1.Ctlcontrols.stop();
详细属性:
[基本属性]
URL:String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
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; 上一曲
Ctlcontrols.PlayCount 文件播放次数
Ctlcontrols.AutoRewind 是否循环播放
Ctlcontrols.Balance 声道
Ctlcontrols.Volume 音量
Ctlcontrols.Mute 静音
Ctlcontrols.EnableContextMenu 是否允许在控件上点击鼠标右键时弹出快捷菜单
Ctlcontrols.AnimationAtStart 是否在播放前先播放动画
Ctlcontrols.ShowControls 是否显示控件工具栏
Ctlcontrols.ShowAudioControls 是否显示声音控制按钮
Ctlcontrols.ShowDisplay 是否显示数据文件的相关信息
Ctlcontrols.ShowGotoBar 是否显示Goto栏
Ctlcontrols.ShowPositionControls 是否显示位置调节按钮
Ctlcontrols.ShowStatusBar 是否显示状态栏
Ctlcontrols.ShowTracker 是否显示进度条
Ctlcontrols.Rate 快进/快退速率
//播放器基本设置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数
//当前媒体属性
currentMedia.sourceURL; 获取正在播放的媒体文件的路径
currentMedia.name; 获取正在播放的媒体文件的名称
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.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
取得一个Media对象
string filePath = "G:\Music\不知不觉-小贱.mp3"; WMPLib.IWMPMedia media = axWindowsMediaPlayer1.newMedia(filePath);