我用MCISendString()播放MID格式文件,现在遇到一个小问题:
MCISendString('OPEN  E:\work\MID\1.MID TYPE SEQUENCER ALIAS MM', 'nil', 0, 0);
MCISendString('PLAY ww FROM 0', 'nil', 0, 0);
MCISendString('CLOSE ANIMATION', 'nil', 0, 0);
可以正确播放,但是我把路径 E:\1.MDI 用字符串表示就不行
 pat1:= ExtractFilePath(Application.ExeName) + 'MID\1.mid';
 MCISendString(pchar('OPEN' + pat1 + 'TYPE SEQUENCER ALIAS MM'), 'nil', 0, 0);
 MCISendString('PLAY NN FROM 0', 'nil', 0, 0);
 MCISendString('CLOSE ANIMATION', 'nil', 0, 0);请问怎样解决呀?

解决方案 »

  1.   

    更正一下:路径 E:\work\MID\1.MID
      

  2.   

    pat1:= ExtractFilePath(Application.ExeName) + 'MID\1.mid';
                                               ^^^^^^^^^^^^^^^
                                                +'MID\\1.mid''
     MCISendString(pchar('OPEN' + pat1 + 'TYPE SEQUENCER ALIAS MM'), 'nil', 0, 0);
     MCISendString('PLAY NN FROM 0', 'nil', 0, 0);
     MCISendString('CLOSE ANIMATION', 'nil', 0, 0);
      

  3.   

    pat1:= "E:\\work\\MID\\1.MID";
     MCISendString(pchar('OPEN' + pat1 + 'TYPE SEQUENCER ALIAS MM'), 'nil', 0, 0);
     MCISendString('PLAY NN FROM 0', 'nil', 0, 0);
     MCISendString('CLOSE ANIMATION', 'nil', 0, 0);
      

  4.   

    空格问题:
    OPEN后面和TYPE前面要空格
    MCISendString(pchar('OPEN ' + pat1 + ' TYPE SEQUENCER ALIAS MM'), 'nil', 0, 0);
      

  5.   

    路径 E:\work\MID\1.MID
    ------------------
    你写的程序生成的exe是放在E:\work\下面的吗?
    加了空格之后,你的代码我是delphi7下通过的。
      

  6.   

    ALIAS MM'), 
    'PLAY NN FROM 0'
    -------------
    改成PLAY MM FORM