none
Windows CE 6.0 无法创建 MediaPlayer COM 对象 RRS feed

  • 问题

  • 大家好!

    用VB.Net 2008 + CF3.5 开发了一个简单(无播放界面)的mp3/wma/wav播放器,播放程序在WinCE 6.0及Mobile 6.0的机器上使用,

    在工程项目中引用了这个wmp.dll COM组件,编译后的程序在Mobile 6.0的机器上运行无问题,播放音乐也一切正常,

    但是,同样的代码项目换了CE平台后重新编译,在CE6的机器上运行就出错,CE6的机器已经安装了CF3.5,CE6自带的播放器是Media Player 9,

    跟踪调试发现错误停止在这行代码上:

    Public MyPlayer As WMPLib.WindowsMediaPlayer

    Public Function InitializeMediaPlayer() As Boolean
        Try
            MyPlayer = New WMPLib.WindowsMediaPlayer '<--- 运行到此处停止
            MyPlayer.settings.autoStart = False
            Return True
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "提示信息")
            Return False
        End Try
    End Function

    下面是复制的错误信息提示:

    未处理 System.Runtime.InteropServices.COMException
      ErrorCode=-2147221164
      Message="由于以下错误: 0x80040154,无法创建 CLSID 为“{6BF52A52-394A-11D3-B153-00C04F79FAA6}”的 COM 对象。 "
      StackTrace:
        位于 PlacePlay.MediaPlayerFunction.InitializeMediaPlayer()
        位于 PlacePlay.FrmMain.FrmMain_Load(Object sender, EventArgs e)
        位于 System.Windows.Forms.Form.OnLoad(EventArgs e)
        位于 System.Windows.Forms.Form._SetVisibleNotify(Boolean fVis)
        位于 System.Windows.Forms.Control.set_Visible(Boolean value)
        位于 System.Windows.Forms.Application.Run(Form fm)
        位于 PlacePlay.FrmMain.Main()
      InnerException:
     
    求各位大侠帮忙看看这是什么问题,有没有解决办法? 谢谢!

    2010年5月8日 1:11

答案

  • 按GUID,你缺的这个COM在CE里面是msdxm.dll, 手工注册一下试试?


    http://wince.cn/ or http://windowsce.com.cn/
    2010年5月20日 5:11
    版主

全部回复

  • 按GUID,你缺的这个COM在CE里面是msdxm.dll, 手工注册一下试试?


    http://wince.cn/ or http://windowsce.com.cn/
    2010年5月20日 5:11
    版主

  • 按GUID,你缺的这个COM在CE里面是msdxm.dll, 手工注册一下试试?


    http://wince.cn/ or http://windowsce.com.cn/

    用msdxm.dll 也试过了,无论在仿真器上还是在实体的CE机器上照样报这个错误:

      0x80040154,无法创建 CLSID 为“{6BF52A52-394A-11D3-B153-00C04F79FAA6}”的 COM 对象。

    开始我怀疑是不是CE的机器没有安装MediaPlayer的SDK支持或组件,但又觉得不对,为什么CE自带的MediaPlayer播放器就能播放音乐呢?实在搞不明白是怎么回事!!!

    在网上找了很久也没找到有效的解决办法,想用开源的TCPMP做又觉得杀鸡用牛刀!

    后来找到一个 Fmodce.dll 库终于解决了问题!

    我只是有点不明白,为什么用自带的开发库在CE上开发媒体播放器就这么难呢?

    2010年5月29日 7:12