当前位置:编程学习 > C#/ASP.NET >>

WMP做播放器

(VS2010  C#)
我用axWindowsMediaPlayer做播放器  添加到listbox后能上一首,下一首 但是我用鼠标双击列表换歌后 再点上一首,下一首 就没用了  为什么呢
下面是我的代码  求高手 完善
另外我想保存 播放列表  用xml可以吗?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace WindowsFormsApplication16
{
    public partial class Form1 : Form
        
    {
        Hashtable ht = new Hashtable();
        public Form1()
        {
            InitializeComponent();
        }
   private void Form1_Load(object sender, EventArgs e)
   {
   }

   private void 添加歌曲_Click(object sender, EventArgs e)
   {
       OpenFileDialog open = new OpenFileDialog();
       open.Multiselect = true;
       open.Filter = "MP3文件|*.mp3|wma文件|*.wma|wav|*.wav|wmv格式|*.wmv|所有格式|*.*";
       if (open.ShowDialog() == DialogResult.OK) ;
       {
           Player.currentPlaylist = Player.newPlaylist("list", "");
           foreach (string fn in open.FileNames)
           {
               WMPLib.IWMPMedia media = Player.newMedia(fn);
               Player.currentPlaylist.appendItem(media);
               string[] s1 = fn.Split('\\');
               string[] s2 = s1[s1.Length - 1].Split('.');
               ht.Add(s2[0], fn);
               listBox1.Items.Add(s2[0]);
           } 
       }
       Player.settings.setMode("loop", true);
       Player.Ctlcontrols.play();
   }

   private void 播放ToolStripMenuItem_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.play();
   }
   private void listBox1_DoubleClick(object sender, EventArgs e)
   {
       string h = listBox1.SelectedItem.ToString();
       this.Player.URL = ht[h].ToString();
   }

   private void 上一首ToolStripMenuItem_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.previous();
   }

   private void 下一首ToolStripMenuItem_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.next();
   }

   private void 暂停ToolStripMenuItem_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.pause();
   }

   private void 停止ToolStripMenuItem_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.stop();
   }
    //暂停
   private void btnpaure_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.pause();
   }
    //停止
   private void btnclose_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.stop();
   }
    //上一首
   private void btnleft_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.previous();
   }
    //下一首
   private void btnright_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.next();
   }
    //播放
   private void btnplay_Click(object sender, EventArgs e)
   {
       Player.Ctlcontrols.play();
   }
    }
}
--------------------编程问答-------------------- 追问  也不能实现自动播放下一首(一首完了又自动重播) --------------------编程问答-------------------- 恭喜搂主,这是ktv 的切歌功能吗?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,