Я делаю игру и пытаюсь зациклить MIDI-файл с помощью mciSendString (). Я посмотрел на CProgramming.com, но объекты окна примера были OWL, и я не мог их портировать. Я также попытался взглянуть на вопрос Брайана Градина, но ответ содержал только две строки кода. Я посмотрел на MSDN, но это как ссылка, а не учебник. Добавление повторения ничего не играет. Это код, который я до сих пор:
mciSendString("open PUG1.MID type sequencer alias music", NULL, 0, NULL);
mciSendString("play music", NULL, 0, NULL);
Если вы поможете, я обязательно внесу вас в списки.
Спасибо! 🙂
РЕДАКТИРОВАТЬ: Я пытался обработать флаг уведомления, но мой код не будет работать. Он играет тему один раз, затем останавливается.
//At the end of WM_CREATE...
mciSendString("open MUSIC\\PUG2.MID type sequencer alias music", NULL, 0, NULL);
mciSendString("play music", NULL, 0, NULL);
break;
case MM_MCINOTIFY:
mciSendString("seek music to start", NULL, 0, NULL);
mciSendString("play music", NULL, 0, NULL);
break;
Вы можете использовать notify
флаг будет уведомлен, когда песня заканчивается.
Это похоже на работу:
case WM_CREATE:
mciSendString("open pickin0.mid type sequencer alias music", NULL, 0, NULL);
mciSendString("play music notify", NULL, 0, hWnd);
break;
case MM_MCINOTIFY:
mciSendString("seek music to start", NULL, 0, NULL);
mciSendString("play music notify", NULL, 0, hWnd);
break;
Вам нужно передать свой дескриптор окна, когда вы используете команду notify, чтобы он мог отправить MM_MCINOTIFY
командовать где-то.
Других решений пока нет …