小弟是个刚入门的菜鸟,现在大家都在做嵌入式开发了,所以我也来凑凑热闹。菜鸟就是菜鸟,这不,现在想在 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知识库发表文章,虽然跟肉鸟们的文章没法比,但这也是我自己的经验,我相信向我一样的菜鸟还是比较多的,希望这篇文章对我们广大的菜鸟们能起到一点点的帮助!