自己寫的一個音樂播放器。
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;
}
}