[WM][C#][如何播放 mp3]

  • 16339
  • 0

[WM][C#][如何播放 mp3]

在 Windows Mobile 平台下要播放一個 mp3 格式檔案, 我們可以採用 Windows Media Player Core 元件來進行播放程序。

 

Step1:在 vs2008 新增一個 C# 智慧型裝置專案,在表單上面產生的UI有二個 Button元件為播放、停止,一個 Label 顯示播放時間 ,progressBar顯示播放進度,timer用來每秒更新progressBar進度及Labe文字。

 image

 

Step2:在方案總管加入參考,指定Windows Media Player Core 元件路徑為 C:\WINDOWS\system32\wmp.dll

  image image

 

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功能表上執行功能表上[偵錯]\[開始偵錯],把程式送到手機上。

image

 

Step5:接下來按下 [Play]進行測試,好聽的 MP3跑出來了喔,讚。

image

 

 

 

 

 

 

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