mciSendString случайно перестает работать

Мой код

    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 содержит путь, а Music содержит имя файла, поэтому MusicLoc [1] + Music [1] будет C: \ etc \ etc \ etc \ audio.mp3, сначала он работал нормально, но потом случайно перестал работать, я пытался все, и это не работает, так что я думаю, использование mciSendString не рекомендуется, так что кто-нибудь знает о хорошей и легкой аудио библиотеке?

Редактировать:
Первый mciSendString возвращает 266, а второй возвращает 275, если он нужен, но я действительно не нашел хорошей документации о них.

Также GetLastError говорит, что нет ошибки …

0

Решение

Если ошибки нет, возврат из 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 %s\n",fname1.c_str(),fname2.c_str(),fname3.c_str());
wchar_t msg[128];
mciGetErrorString( err, msg,128 );
wprintf(L"%s\n",msg);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]