[CF.Skills]在.NET CF中嵌入Media Player(C#)

來源:互聯網
上載者:User

昨天有人在http://winbile.net/bbs上問到,在WM5上面如何使用MediaPlayer播放音樂。
其實微軟有在一個多媒體案例中提到,詳見:
http://www.microsoft.com/china/MSDN/library/Mobility/pocketpc/WorkingwithMultimedia.mspx
只不過方法有些複雜,不過還好你可以下載它的Sample,然後在你的託管項目中引用該項目。
不管怎麼說,畢竟.NET Compact Framework中沒有可以直接操作wmp的方法。但是,即便如此我們仍然可以使用Managed 程式碼對windows media player進行控制。其基本思路是先為media player建立一條單獨的進程,再通過忘Media player的表單發送訊息來控制Media Player。下面來看看這是如何通過Managed 程式碼做到的,
首先,建立進程並傳入相應參數:

            wmpProcess = new Process();
            wmpProcess.StartInfo.FileName = "wmplayer.exe";
            wmpProcess.StartInfo.Arguments = wmpArgs;

這裡要注意一下Arguments的格式,應該像這樣:"""\My Documents\TestVideo.wmv"" /fullscreen";檔案路徑必須和後面的參數區分開,這裡C#和VB中,這樣的加雙引號的方式是合法的。
然後,啟動進程,音樂開始播放了(此時也許你希望使用者的焦點仍然你的FORM,那麼你應將你的form放置在頂層),在WM5.0以上的系統中,提供了更多對WMP的支援,你可以通過某些屬性訪問到當前播放的曲目名,藝術家的名字,專輯名,位元速率,已經播放的時間(精確到毫秒)甚至是音樂風格。下面列舉了一些:            artist = SystemState.MediaPlayerTrackArtist;
            playingTrack = SystemState.MediaPlayerTrackTitle;
            album = SystemState.MediaPlayerAlbumTitle;
            bitRate = SystemState.MediaPlayerTrackBitrate;
            style = SystemState.MediaPlayerTrackGenre;

還有一個問題是如何停止MediaPlayer呢?我們還是可以通過給表單發送訊息來間接的控制,不過這裡要用到一個本地的函數SendMessage,代碼如下:


    //引用SendMessage並命名為CloseWMP
        private const UInt32 WM_CLOSE = 16;
        [DllImport("Coredll.dll", EntryPoint = "SendMessage")]
        public static extern Int32 CloseWMP(IntPtr hWnd, UInt32 Msg, Int32 wParam, Int32 lParam);
//用的時候這樣
          public void StopWMP()
        {
            MyRef.CloseWMP(wmpProcess.MainWindowHandle, WM_CLOSE, 0, 0);
        }

程式運行效果如下:

完整的代碼點擊此處下載

 All rights reserved by Freesc Huang
 http://fox23.cnblogs.com
 hjd.click [AT] gmail.com
2008-2-18

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.