问题如下:
调用mcisendstring播放vcd,在win2000下好用,可后来不知被我装了什么软件,用不了拉,老是报错,说什么无法识别设备或者是设备未打开
到win98下面更是离谱,一次都没成功过,每次都说什么系统设备出错。
我又把它转到winxp下面,按我的想法,它基于win2000内核,应该没什么问题,可他也报错,和被我破坏后的win2000一样!
望高手指点迷津!!!

解决方案 »

  1.   

    把你的调用代码放上来看一下,一般利用MCI函数播放媒体(声音、动画登)都是打开相对应的MCI设备播放。如果要正确的播放vcd,需要系统中安装了支持mpeg格式的mci设备。
      

  2.   

    怎么安装mci设备?
    代码如下:
    Private modestr As String
    Private returnstr As String
    Private Sub Command1_Click()
    Dim temp As Long
    Dim temp2 As Long
    CommonDialog1.Filter = "(*.dat)|*.dat|(*.cda)|*cda"
    CommonDialog1.Action = 1
    temp = mciExecute("open " + CommonDialog1.FileName + " alias vcd") '注意play后面要加空格再接双引号
    temp2 = mciExecute("play vcd")
    returnstr = mciSendString("status vcd mode", modestr, 128, 0)
    Label1.Caption = modestr
    End SubPrivate Sub Command2_Click()
    Dim offright As Long
    offright = mciExecute("set vcd audio right off")
    returnstr = mciSendString("status vcd mode", modestr, 128, 0)
    Label1.Caption = modestr
    End SubPrivate Sub Command3_Click()
    Dim stopvcd As Long
    stopvcd = mciExecute("stop vcd")
    returnstr = mciSendString("status vcd mode", modestr, 128, 0)
    Label1.Caption = modestr
    Call mciExecute("close vcd")
    End Sub
    模块:
    Public Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As LongPublic Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
      

  3.   

    你的代码在我的机器上运行通过。我安装的是Windows media player 7.0。它支持Mpeg格式你可以尝试安装一下Windows media player 7.0
      

  4.   

    我说过拉
    代码应该没问题 因为在win2000调试成功啦
    可后来装了一个装程序把它搞坏啦
    不过在win98下面死都通不过 设备不被识别 我在想如果我的程序一发布岂不是不能在98上运行?
      

  5.   

    老半天拉
    还没解决
    我只好重装win2000
    好啦,现在又一个问题来啦
    见http://www.csdn.net/expert/TopicView.asp?id=288405
    能回答上来的有50+另外80分
    这里的帖子,暂时不结帐