mciSendString随机停止工作
mciSendString randomly stops working
我的代码
char MusicLoc [50][200];
char Music [50][50];
int MusicBox(int IndexMusic)
{
std::string rawloc = ((std::string)"open ""+MusicLoc[IndexMusic]+Music[IndexMusic]+""type mpegvideo alias "+Music[IndexMusic]);`
mciSendString(rawloc.c_str(), NULL, 0, 0);
mciSendString(((std::string)"play "+Music[IndexMusic]).c_str(), NULL, 0, 0);
return 0;
}
MusicLoc 包含路径,音乐包含文件名,因此 MusicLoc[1]+Music[1] 将是 C:\etc\etc\etc\audio.mp3 ,起初它工作正常,但后来它随机停止工作,我已经尝试了一切,但它不起作用,所以我猜不推荐使用 mciSendString,所以有人知道一个好的轻量级音频库吗?
编辑:第一个 mciSendString 返回 266,第二个返回 275,如果它有任何用处,但我真的没有找到关于它们的好文档。
GetLastError也说没有错误...
如果没有错误,则从 mciSendString 返回的值应为零。 您的问题表明您遇到了错误!
要很好地解码错误,请使用 mciGetErrorString
像这样的东西(从我的代码中撕下来,所以你将不得不调整变量名称等)
wchar_t cmd[250];
swprintf(cmd,249,L"open %s alias an1",fname1.c_str());
err = mciSendString(cmd, 0, 0, 0 );
if( err ) throw err;
...
catch ( unsigned int& err ) {
wprintf(L"Playing %s %s %sn",fname1.c_str(),fname2.c_str(),fname3.c_str());
wchar_t msg[128];
mciGetErrorString( err, msg,128 );
wprintf(L"%sn",msg);
相关文章:
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 自 Windows 10 20H1 以来,具有单独线程的多个窗口停止工作
- C++代码停止工作错误使用cout内部函数
- LoadImage 在 Windows 更新后停止工作
- C++程序工作,但 Windows 显示"程序.exe已停止工作"
- VS 代码 C/C++ 智能感知在更新后停止工作
- 不使用与左右停止工作命名空间 std 的简单比较
- 为什么通过定义另一个指针单元格,整个代码停止工作?
- 德拉吉诺 LG01-S 收到异常数据包并停止工作
- G++ 在生成文件中使用时停止工作
- 当循环在条件C++之前停止工作时
- GCC:--静态链接到pthread的整个存档配方在最近的GCC版本中停止工作
- 正则表达式代码无缘无故停止工作
- 我的代码在第 4 个选择后停止工作
- 读取二进制文件大小的短自上周以来停止工作
- C++ 已停止工作静态映射函数
- Vscode 自动格式化代码在运行几次后停止工作
- 接线派C++串行功能随机停止工作
- WCSCMP参数随机停止工作
- mciSendString随机停止工作