[WM][C#][如何播放 mp3]
在 Windows Mobile 平台下要播放一個 mp3 格式檔案, 我們可以採用 Windows Media Player Core 元件來進行播放程序。
Step1:在 vs2008 新增一個 C# 智慧型裝置專案,在表單上面產生的UI有二個 Button元件為播放、停止,一個 Label 顯示播放時間 ,progressBar顯示播放進度,timer用來每秒更新progressBar進度及Labe文字。
Step2:在方案總管加入參考,指定Windows Media Player Core 元件路徑為 C:\WINDOWS\system32\wmp.dll
Step3:撰寫下列程式碼至 Form1.cs
private WMPLib.WindowsMediaPlayer wmp;
public Form1()
{
InitializeComponent();
wmp = new WMPLib.WindowsMediaPlayer();
}
private void button1_Click(object sender, EventArgs e)
{
wmp.URL = @"\test.mp3";
wmp.settings.volume = 100;
wmp.controls.play();
timer1.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
wmp.controls.stop();
timer1.Enabled =false;
}
public int MediaGetPosition()
{
int ret = 0;
if (WMPLib.WMPPlayState.wmppsPlaying != wmp.playState)
{
return ret;
}
double curPos = wmp.controls.currentPosition;
double totalLen = wmp.currentMedia.duration;
ret =(int)((curPos / totalLen) * 100);
return ret;
}
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Value = MediaGetPosition();
if (WMPLib.WMPPlayState.wmppsPlaying == wmp.playState)
{
label1.Text = wmp.controls.currentPositionString;
}
else
{
timer1.Enabled = false;
label1.Text = "00:00";
}
}
Step4:寫好程式碼就開始在 VS2008功能表上執行功能表上[偵錯]\[開始偵錯],把程式送到手機上。
Step5:接下來按下 [Play]進行測試,好聽的 MP3跑出來了喔,讚。
WMPLib的基本屬性及方法
URL: (String); 指定媒體位置,本機或網路位址
uiMode:(String); 播放機介面模式,可為Full, Mini, None, Invisible
playState:(integer); 播放狀態,1=停止,2=暫停,3=播放,6=正在緩衝,9=正在連接,10=準備就緒
enableContextMenu:(Boolean); 啟用/禁用右鍵菜單
fullScreen:boolean; (是否全屏顯示)
[controls] wmp.controls //播放機基本控制
controls.play; 播放
controls.pause; 暫停
controls.stop; 停止
controls.currentPosition:double; 當前進度
controls.currentPositionString:string; 當前進度,字串格式。如“00:23”
controls.fastForward; 快進
controls.fastReverse; 快退
controls.next; 下一曲
controls.previous; 上一曲
[settings] wmp.settings //播放機基本設置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自動播放
settings.mute:Boolean; 是否靜音
settings.playCount:integer; 播放次數
[currentMedia] wmp.currentMedia //當前媒體屬性
currentMedia.duration:double; 媒體總長度
currentMedia.durationString:string; 媒體總長度,字串格式。如“03:24”
currentMedia.getItemInfo(const string); 獲取當前媒體資訊"Title"=媒體標題,"Author"=藝術 家,"Copyright"=版權資訊,"Description"=媒體內容描述,"Duration"=持續時間(秒),"FileSize"=檔大小,"FileType"=檔案類型,"sourceURL"=原始地址
currentMedia.setItemInfo(const string); 通過屬性名設置媒體資訊
currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
[currentPlaylist] wmp.currentPlaylist //當前播放清單屬性
currentPlaylist.count:integer; 當前播放清單所包含媒體數
currentPlaylist.Item[integer]; 獲取或設置指定專案媒體資訊,其子屬性同wmp.currentMedia