【发布时间】:2018-11-29 00:19:31
【问题描述】:
一些包含Playsound重要功能的部分
MCI_OPEN_PARMS m_mciOpenParms;
MCI_PLAY_PARMS m_mciPlayParms;
DWORD m_dwDeviceID;
MCI_OPEN_PARMS mciOpen;
MCI_PLAY_PARMS mciPlay;
int dwID;
//
#define TITLE_SPACE 55
#define TITLE_ENTER 10
/*music address*/#definedecision_change "C:\\Users\\chanho\\Desktop\\decision_change.wav"
#define main_theme "C:\\Users\\chanho\\Desktop\\FlappyChicken.mp3"
我的部分代码
if (inner_time == 0)
{
//bgm
mciOpen.lpstrElementName = TEXT(main_theme);
mciOpen.lpstrDeviceType = "mpegvideo";
mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (DWORD)(LPVOID)&mciOpen);
dwID = mciOpen.wDeviceID;
mciSendCommand(dwID, MCI_PLAY, MCI_DGV_PLAY_REPEAT, (DWORD)(LPVOID)&m_mciPlayParms);
//
}
它在其他 PC 或笔记本电脑上运行良好,但是当我插入此代码并对其进行编译时,它返回奇怪的退出代码并在“我的部分代码”时停止
当我删除这个“我的代码的一部分”时,它没有问题。
编译此代码时没有发生错误,即使它有奇怪的退出代码。
谁能解释一下为什么只有我的笔记本电脑会返回 -107~~~ 代码问题以及如何修复它?
【问题讨论】:
-
展开我的编辑 - 也许是“comfile”的意思。
-
您说 PlaySound 失败,但您没有显示该代码 - 您正在显示 mciSendCommand。您能否展示实际失败的代码以及您如何推断错误代码?此外,除非最近版本的 Windows 中有所改变,否则 PlaySound API 仅支持 WAV 文件。 (但是,您可以为 MP3 字节构建 WAV 容器文件)。
-
这里确实需要完整、最小、可验证的示例。
-
其实是mciSendCommand。正确的。我不知道你说的是 PlaySound ......呵呵