zoukankan      html  css  js  c++  java
  • 【笔记】使用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);
  • 相关阅读:
    在你想要放弃的那一刻,想想为什么当初坚持走到了这里
    将来的你一定会感谢现在奋斗的自己
    学习改变命运,拼搏成就未来
    springmvc的DispatcherServlet源码——doDispatch方法解析
    SpringMVC02 AbstractController And MultiActionController
    SpringMVC简介01
    NIO
    数据库的锁机制
    Spring和MyBatis环境整合
    事务的隔离级别和mysql事务隔离级别修改
  • 原文地址:https://www.cnblogs.com/bomo/p/2809130.html
Copyright © 2011-2022 走看看