音樂播放器 vmp 代碼部分

自己寫的一個音樂播放器。

 

 

using System;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
using WMPLib;

namespace MusicPlayer
{

    public partial class Form1 : Form
    {
        WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer();
        IWMPMediaCollection i = null;
        IWMPPlaylist c = null;
        int num = 0;
        int num_listen=1;
        int init = 0;
        string url = "";
        public Form1()
        {
            InitializeComponent();
            this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);
            this.notifyIcon1.Visible = false;
            button1.Enabled = false;
            button3.Enabled = false;
            button2.Enabled = false;
            button4.Enabled = false;
            button5.Enabled = false;
            button6.Enabled = false;

        }


        //start
        private void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button3.Enabled = true;
            if(init==0){
            int number = 0;
            var listFile = Directory.EnumerateFiles(url, "*mp3");
            c = player.newPlaylist("mymusic", @"234");
            i = player.mediaCollection;
            foreach (string file in listFile)
            {
                c.insertItem(number++, i.add(file));
            }
            init++;
            }
            num = 0;
            num_listen = 100000;
            timer1.Enabled = true;
            timer2.Enabled = true;
        }

        private void play()
        {
            player.URL = c.get_Item(num).sourceURL;
            player.controls.play();
        }

        //stop
        private void button3_Click(object sender, EventArgs e)
        {
            timer1.Enabled=false;
            player.controls.stop();
            button1.Enabled = true;
            button3.Enabled = false;
        }

        //Double Click notifyIcon
        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                this.Visible = true;
                this.WindowState = FormWindowState.Normal;
                this.notifyIcon1.Visible = false;
            }
        }

        //mix form
        private void Form1_SizeChanged(object sender, System.EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.Visible = false;
                this.notifyIcon1.Visible = true;
            }
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void 還原ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Visible = true;
            this.WindowState = FormWindowState.Normal;
            this.notifyIcon1.Visible = false;
        }

        private void button5_Click(object sender, EventArgs e)
        {
            player.controls.pause();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            player.controls.play();
        }


        // fore
        private void button2_Click(object sender, EventArgs e)
        {
            num = num - 1;
        }


        //next
        private void button4_Click(object sender, EventArgs e)
        {

            num = num + 1;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (num < 0 )
            {
                num = c.count-1;
            }
            if (num > c.count - 1)
            {
                num = 0;
            }
            if (num != num_listen)
            {
                num_listen = num;
                play();
            }
        }

        private void listBox1_DoubleClick(object sender, EventArgs e)
        {
            num=listBox1.SelectedIndex;
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.listBox1.DoubleClick+=new EventHandler(listBox1_DoubleClick);
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button7_Click(object sender, EventArgs e)
        {
            button1.Enabled = true;
            button3.Enabled = true;
            button2.Enabled = true;
            button4.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = false;
            url = textBox1.Text.Trim();
            player.uiMode = "None";
            player.settings.volume = 100;
            player.settings.playCount = 1;
            player.settings.setMode("loop", false);
            player.settings.setMode("shuffle", false);
            url = url.Replace(@"\", @"\\");
            var listFile = Directory.EnumerateFiles(url, "*.mp3");
            foreach (string file in listFile)
            {
                listBox1.Items.Add(file.Substring(url.Length + 1, file.Length - url.Length - 1));
            }
        }

        private void timer2_Tick(object sender, EventArgs e)
        {
            if (player.playState == WMPPlayState.wmppsStopped)
            {
                num += 1;
            }
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章