小弟是個剛入門的菜鳥,現在大家都在做嵌入式開發了,所以我也來湊湊熱鬧。菜鳥就是菜鳥,這不,現在想在 WinCE4.2 下播放 wma、mp3 音樂,可是連個 Winodws Media Player 控制項都不知道該怎麼調用。大家可不要笑啊,以前我在 Winodws2000 平台下,感覺調用這個控制項非常簡單,可是在 WinCE4.2 平台下就沒轍了。為什麼呢?原因就是基於 WinCE4.2 平台的程式開發要在 Windows2000 等平台上做,可是在 Windows2000 平台上調出來的 Windows Media Player 控制項不能在 WinCE4.2平台上用。我想,大部分朋友都遇到過這個問題。
Windows Media Player 控制項雖然是個好東東,可對於初學者卻沒法下手。
有人說,你可以用COM嘛!老大,COM對於我們這種菜鳥,那真是用還不如不用,一知半解的還不如不用,再說了用了也白用,我找了好多資料,用COM調用 Windows Media Player 控制項可是還是沒聲音,我也不知道哪一步做錯了。這該怎麼辦?難道我們這些菜鳥果真不能做嵌入式開發嗎?吾緊鎖眉頭、冥思苦想!
山窮水盡疑無路,柳暗花明又一村!
菜鳥的福音!
經過我在網上海掏,終於找到了一點眉目。首先要明確的一點是,WinCE4.2 作業系統裡內建的 Windows Media Player 控制項其實是 6.4版本,根本不是它介面上顯示的 9.0 版本。所以,我們大家都被騙了,蓋茲拿 6.4 版本當 9.0 版賣。另外還要明確的一點就是,這個WinCE4.2 作業系統裡的 6.4 控制項跟 Windows2000 下的 6.4 版本一模一樣。明確以上兩點後,一切就好辦了!
首先,在PC機的[開始]-[運行]裡執行以下命令:
regsvr32 c:\windows\system32\wmp.dll /u
這句的意思就是卸載掉 Windows Media Player 9.0 版本的控制項的註冊。然後,在PC機的[開始]-[運行]裡執行以下命令:
regsvr32 c:\windows\system32\msdxm.ocx
這句的意思是註冊 Windows Media Player 6.4 版本的控制項。
接下來,開啟 eMbedded Visual C++ 4.0,建立一個我們菜鳥們最喜歡的MFC對話方塊工程,在嚮導中把允許 ActiveX 控制項打上鉤,一路下一步。完成嚮導後,選擇 [Project] 菜單中的 [Add to project] 中的 [Components and controls],彈出 Componests and Controls Gallery 對話方塊,開啟 Registered ActiveX Controls 檔案夾,顯示出好幾項來,最後面一項就是 [Windows Media Player],選中後點擊[Insert]按鈕,彈出Confirm Classes對話方塊,點OK按鈕確定。這時,在對話方塊編輯視窗中的工具列中就應該有 Windows Media Player 控制項了,應該在最低下那個,好像顯示的是個叉。
現在,從工具列中拖一個 Windows Media Player 控制項到對話方塊中,然後在 ClassWizard 中建立一個指向 Windows Media Player 控制項的變數,再後邊的對於我們這些菜鳥也就不是很難了!
最後,選擇你自己的平台編譯一個Release版本,然後在你的嵌入式裝置上運行一下看看,感覺跟在Windows2000平台上沒什麼兩樣。
現在介紹一下小弟的開發環境和開發平台:
PC機端:
作業系統:Windows XP Professional SP2
開發工具:eMbedded Visual C++ 4.0
嵌入式裝置端:
作業系統:Windows CE .Net 4.2
硬體平台:三星2410
結束語
這是小弟第一次在VC知識庫發表文章,雖然跟肉鳥們的文章沒法比,但這也是我自己的經驗,我相信向我一樣的菜鳥還是比較多的,希望這篇文章對我們廣大的菜鳥們能起到一點點的協助!