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);
  • 相关阅读:
    Linux就该这么学--Shell脚本基本应用
    Linux就该这么学--了解Shell脚本
    Linux就该这么学--命令集合11(配置系统相关信息)
    解決 centos -bash: vim: command not found
    Linux就该这么学--命令集合10(vim编辑器)
    Linux就该这么学--命令集合9(环境变量)
    html5 浏览器端数据库
    加密技术---仿射密码
    数组的运用、排序
    面试题参考
  • 原文地址:https://www.cnblogs.com/bomo/p/2809130.html
Copyright © 2011-2022 走看看