一个窗体中我添加了一个系统自带的组件windos media player
和一个listbox,这listbox添加了很多歌曲名,我想把它作为windos media player的播放列表
播放完一首后自动播放下一首
应该怎么做!
跪求详解!!!

解决方案 »

  1.   

    AxWindowsMediaPlayer的详细用法
    AxWindowsMediaPlayer的详细用法收藏
    找我把,剛做過,相當熟悉
    属性/方法名: 说明: 
    [基本属性]   
    URL:String; 指定媒体位置,本机或网络地址 
    uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible 
    playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪 
    enableContextMenu:Boolean; 启用/禁用右键菜单 
    fullScreen:boolean; 是否全屏显示 
    [controls] wmp.controls //播放器基本控制 
    controls.play; 播放 
    controls.pause; 暂停 
    controls.stop; 停止 
    controls.currentPosition:double; 当前进度 
    controls.currentPositionString:string; 当前进度,字符串格式。如“00:23” 
    controls.fastForward; 快进 
    controls.fastReverse; 快退 
    controls.next; 下一曲 
    controls.previous; 上一曲 
    [settings] wmp.settings //播放器基本设置 
    settings.volume:integer; 音量,0-100 
    settings.autoStart:Boolean; 是否自动播放 
    settings.mute:Boolean; 是否静音 
    settings.playCount:integer; 播放次数 
    [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 
    AxWindowsMediaPlayer控件的属性收藏
    MediaPlayer1.Play          播放  
    MediaPlayer1.Stop          停止  
    MediaPlayer1.Pause          暂停  
    MediaPlayer1.PlayCount        文件播放次数  
    MediaPlayer1.AutoRewind       是否循环播放  
    MediaPlayer1.Balance         声道  
    MediaPlayer1.Volume         音量  
    MediaPlayer1.Mute          静音  
    MediaPlayer1.EnableContextMenu    是否允许在控件上点击鼠标右键时弹出快捷菜单  
    MediaPlayer1.AnimationAtStart    是否在播放前先播放动画  
    MediaPlayer1.ShowControls      是否显示控件工具栏  
    MediaPlayer1.ShowAudioControls    是否显示声音控制按钮  
    MediaPlayer1.ShowDisplay       是否显示数据文件的相关信息  
    MediaPlayer1.ShowGotoBar       是否显示Goto栏  
    MediaPlayer1.ShowPositionControls  是否显示位置调节按钮  
    MediaPlayer1.ShowStatusBar      是否显示状态栏  
    MediaPlayer1.ShowTracker       是否显示进度条  
    MediaPlayer1.FastForward       快进  
    MediaPlayer1.FastReverse       快退  
    MediaPlayer1.Rate          快进/快退速率  
    MediaPlayer1.AllowChangeDisplaySize 是否允许自由设置播放图象大小  
    MediaPlayer1.DisplaySize       设置播放图象大小  
        1-MpDefaultSize         原始大小  
        2-MpHalfSize           原始大小的一半  
        3-MpDoubleSize          原始大小的两倍  
        4-MpFullScreen          全屏  
        5-MpOneSixteenthScreen      屏幕大小的1/16  
        6-MpOneFourthScreen       屏幕大小的1/4  
        7-MpOneHalfScreen        屏幕大小的1/2  
    MediaPlayer1.ClickToPlay       是否允许单击播放窗口启动Media Player  
     http://blog.csdn.net/brouse8079/archive/2007/10/17/1829885.aspx AxWindowsMediaPlayer常用属性
    2008-03-18 21:28
    2. Ctlcontrols属性Ctlcontrols属性是AxWindowsMediaPlayer的一个重要属性, 此控件中有许多常用成员。(1) 方法play用于播放多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.play()如: AxWindowsMediaPlayer1.Ctlcontrols.play()‘此处缺省窗体名是Me(2) 方法pause用于暂停正在播放的多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.pause()如: AxWindowsMediaPlayer1.Ctlcontrols.pause()(3) 方法stop用于停止正在播放的多媒体文件,其格式为:窗体名.控件名.Ctlcontrols.stop()如: AxWindowsMediaPlayer1.Ctlcontrols.stop()(4) 方法fastforward用于将正在播放的多媒体文件快进,其格式为:窗体名.控件名.Ctlcontrols.fastforward()如:AxWindowsMediaPlayer1.Ctlcontrols.forward()(5) 方法fastreverse窗体名.控件名.Ctlcontrols.fastreverse()如:AxWindowsMediaPlayer1.Ctlcontrols.fastreverse()6. 属性CurrentPosition用于获取多媒体文件当前的播放进度,其值是数值类型,使用格式为:窗体名.控件名.Ctlcontrols.currentPositiond1=AxWindowsMediaPlayer1.Ctlcontrols.currentPosition其中d1 是一个整型变量。7. 属性Duration用于获取当前多媒体文件的播放的总时间,其值为数值类型,其使用格式为:窗体名.控件名.currentMedia.duration如:d2=AxWindowsMediaPlayer1.currentMedia.duration其中d2是一个整型变量。
    controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
    属性/方法名: 说明: 
    [基本属性]   
    URL:String; 指定媒体位置,本机或网络地址 
    uiMode:String; 播放器界面模式,可为Full, Mini,None, Invisible 
    playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪player.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(player_PlayStateChange);private void player_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
    {
        // Test the current state of the player and display a message for each state.
        switch (e.newState)
        {
            case 0:    // Undefined
                currentStateLabel.Text = "Undefined";
                break;        case 1:    // Stopped
                currentStateLabel.Text = "Stopped";
                break;        case 2:    // Paused
                currentStateLabel.Text = "Paused";
                break;        case 3:    // Playing
                currentStateLabel.Text = "Playing";
                break;        case 4:    // ScanForward
                currentStateLabel.Text = "ScanForward";
                break;        case 5:    // ScanReverse
                currentStateLabel.Text = "ScanReverse";
                break;        case 6:    // Buffering
                currentStateLabel.Text = "Buffering";
                break;        case 7:    // Waiting
                currentStateLabel.Text = "Waiting";
                break;        case 8:    // MediaEnded
                currentStateLabel.Text = "MediaEnded";
                break;        case 9:    // Transitioning
                currentStateLabel.Text = "Transitioning";
                break;        case 10:   // Ready
                currentStateLabel.Text = "Ready";
                break;        case 11:   // Reconnecting
                currentStateLabel.Text = "Reconnecting";
                break;        case 12:   // Last
                currentStateLabel.Text = "Last";
                break;        default:
                currentStateLabel.Text = ("Unknown State: " + e.newState.ToString());
                break;
        }
    }
      
    enableContextMenu:Boolean; 启用/禁用右键菜单 
    fullScreen:boolean; 是否全屏显示 
    controls.currentPosition:double; 当前进度 
    controls.fastForward; 快进 
    controls.fastReverse; 快退 
    controls.next; 下一曲 
    controls.previous; 上一曲 
    [settings] wmp.settings //播放器基本设置 
    settings.volume:integer; 音量,0-100 
    settings.autoStart:Boolean; 是否自动播放 
    settings.mute:Boolean; 是否静音 
    settings.playCount:integer; 播放次数 
    [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
      

  2.   

     //循环播放列表
            private void timer2_Tick(object sender, EventArgs e)
            {
                //自动播放播放列表中的下一曲
                //如果当前的播放时间与总的播放时间相同则listBox1.SelectedIndex作自加加处理,以达到播放列表中下一曲的功能
                if (axWindowsMediaPlayer1.Ctlcontrols.currentPositionString.Equals(axWindowsMediaPlayer1.currentMedia.durationString) == true)
                {
                    if (listBox1.SelectedIndex == listBox1.Items.Count - 1)
                    {
                        listBox1.SelectedIndex = 0;
                        this.axWindowsMediaPlayer1.URL = listBox1.Text;
                        label2.Text = axWindowsMediaPlayer1.URL;
                    }
                    else
                    {
                        listBox1.SelectedIndex++;
                        this.axWindowsMediaPlayer1.URL = listBox1.Text;
                        label2.Text = axWindowsMediaPlayer1.URL;
                    }
                }
            }
      

  3.   

    三楼那是神马啊  在百度文库搜的玩意  尼玛 看哪个 end if  就是Delphi的玩意
    人家楼主问的是C#  专业点
      

  4.   

            private void select_song(string name)
            {
                conn.Open();
                string sql = "select * from list where name=" + "'" + name + "'";
                SqlCommand objcmd = new SqlCommand(sql, conn);
                SqlDataReader read = objcmd.ExecuteReader();
                if (read.Read())
                {
                    axWindowsMediaPlayer1.URL = read["path"].ToString();
                }
                read.Close();
                conn.Close();
            }
    private void cycle_song()
            {
                if (songlist.SelectedIndex + 1 == songlist.Items.Count)
                    songlist.SelectedIndex = 0;
                else
                {
                    songlist.SetSelected(songlist.SelectedIndex + 1, true);
                }
                select_song(songlist.SelectedItem.ToString());
            }
    axWindowsMediaPlayer1.Ctlcontrols.play();
    以上是我自己写的一个播放器的部分代码!看不懂可以找我!