【笔记】使用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);

 

 

 

 

 

posted @ 2012-12-08 18:15  bomo  阅读(6600)  评论(3编辑  收藏  举报