最近做的C#播放音乐(.wav文件)的小程序:
using
System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace test
... {
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
MusicPlayer music = new MusicPlayer();
public int temp = 0;
private void Form1_Load(object sender, EventArgs e)
...{
}
private void button1_Click(object sender, EventArgs e)
...{
if (temp == 0)
...{
music.Stop();
music.Play(@"..demo.wav"); //文件存放的路径
}
else
...{
music.Play(@"..demo.wav");
}
}
private void button2_Click(object sender, EventArgs e)
...{
temp = 1;
music.Pause();
}
private void button3_Click(object sender, EventArgs e)
...{
temp = 0;
music.Stop();
}
}
public class MusicPlayer
...{
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand,
string strReturn, int iReturnLength, IntPtr hwndCallback);
public MusicPlayer()
...{
}
//播放器状态
public string Status
...{
get
...{
string sCommand = "status MediaFile mode";
string ret = "";
mciSendString(sCommand, ret, 10, IntPtr.Zero);
return ret.Trim();
}
}
//打开音乐文件
private void Open(string sFileName)
...{
string sCommand = "open "" + sFileName + "" type mpegvideo alias MediaFile";
// MediaFile是选择播放文件类型
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
//播放音乐
public void Play(string filename)
...{
Open(filename);
string sCommand = "play MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
//停止播放音乐
public void Stop()
...{
string sCommand = "close MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
//暂停音乐
public void Pause()
...{
string sCommand = "pause MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace test
... {
public partial class Form1 : Form
...{
public Form1()
...{
InitializeComponent();
}
MusicPlayer music = new MusicPlayer();
public int temp = 0;
private void Form1_Load(object sender, EventArgs e)
...{
}
private void button1_Click(object sender, EventArgs e)
...{
if (temp == 0)
...{
music.Stop();
music.Play(@"..demo.wav"); //文件存放的路径
}
else
...{
music.Play(@"..demo.wav");
}
}
private void button2_Click(object sender, EventArgs e)
...{
temp = 1;
music.Pause();
}
private void button3_Click(object sender, EventArgs e)
...{
temp = 0;
music.Stop();
}
}
public class MusicPlayer
...{
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand,
string strReturn, int iReturnLength, IntPtr hwndCallback);
public MusicPlayer()
...{
}
//播放器状态
public string Status
...{
get
...{
string sCommand = "status MediaFile mode";
string ret = "";
mciSendString(sCommand, ret, 10, IntPtr.Zero);
return ret.Trim();
}
}
//打开音乐文件
private void Open(string sFileName)
...{
string sCommand = "open "" + sFileName + "" type mpegvideo alias MediaFile";
// MediaFile是选择播放文件类型
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
//播放音乐
public void Play(string filename)
...{
Open(filename);
string sCommand = "play MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
//停止播放音乐
public void Stop()
...{
string sCommand = "close MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
//暂停音乐
public void Pause()
...{
string sCommand = "pause MediaFile";
string ret = null;
mciSendString(sCommand, ret, 0, IntPtr.Zero);
}
}
}
VS2005调试通过。