C ++ mciSendString()

时间:2013-02-20 21:50:39

标签: c++ audio

我用c ++写了一个游戏,用

播放音频

mciSendString("play sounds/music.wav repeat", NULL, 0, NULL);

现在,在我大学的计算机上(Windows 7,不确定是32位还是64位)它可以正常播放,但在家用电脑(Windows 7 64位)上我没有声音。这怎么可能?我听说MCI驱动程序不包含在Windows 7中,那么为什么它在我大学的Windows 7计算机上运行良好,而不是在家用电脑上?我正在使用Devc ++,在任何人提到它有多糟糕之前(我知道),我必须使用它,因为它是我游戏的必需品。

1 个答案:

答案 0 :(得分:0)

在您的代码行中:

mciSendString("play sounds/music.wav repeat", NULL, 0, NULL);

没有双引号,这就是问题所在。任何多媒体设备都无法识别此命令行。 正确的语法是将您的路径和音频文件(sounds / music.wav)放在双引号内。这行代码应该有效:

mciSendString("play \"sounds/music.wav\" repeat", NULL, 0, NULL);

当然你需要写'\'字符才能在字符串值中写出引号字符'“'。

将旧的代码行更改为此。如果它仍然不起作用,那么你应该调用mciGetErrorString函数并找出未执行命令的原因,以及你需要做些什么来解决你的问题。