在C#語言中欲播放mp3可使用Media Player控件或者是WindowsAPI 中的mciSendString,在此以mciSendString為例。
1.各函式可分為四個參數
(1)發送命令字串通常是[指令][設備別名]。(2)返回訊息的緩衝區,為一指定大小的字串。
(3)緩衝區的大小。
(4)回調方式,一般設為0。
2.命令參數
(1)close:關閉設備
(2)open:開啟設備(加上檔名 別名)e.g:open test.mp3 alias media
(3)play media:播放mp3
(4)pause media:暫停
3.設計MP3Player類別
public class MP3Player
{
public void Play(string FilePath)
{
mciSendString("close all", "", 0, 0);
mciSendString("open " + FilePath + " alias media", "", 0, 0);
mciSendString("play media", "", 0, 0);
}
public void Pause()
{
mciSendString("pause media", "", 0, 0);
}
public void Stop()
{
mciSendString("close media", "", 0, 0);
}
[DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
private static extern int mciSendString(
string lpstrCommand,
string lpstrReturnString,
int uReturnLength,
int hwndCallback
);
}
4.使用方式
MP3Player mp3 = new MP3Player();
mp3.Play(path);
5.注意事項
若設計時牽扯到執行緒時可能會造成無法播放,因此要將之設定為單一執行緒即可。Thread thread = new Thread(new ThreadStart(dowork)); thread.SetApartmentState(ApartmentState.STA);//在此設定 thread.Start();
留言
張貼留言