Я только что начал изучать C++, и я пытаюсь понять, как играть в midi-файл и делать его бесконечным. (EDIT: в фоновом режиме, пока остальная часть кода работает). Я нашел решение, но я не понимаю, как его использовать. Я даже не знаю, как исследовать, чтобы понять, как его использовать. Чем больше я пытаюсь исследовать, тем больше теряюсь.Loop midi in C++, 'pass window handle'?
Я спрашиваю, по крайней мере, кто-то объясняет, какие темы мне нужны для исследования, чтобы понять, как реализовать предоставленное решение.
Вот что я был в состоянии собрать:
mciSendString("open Latin.mid", NULL, 0, NULL);
mciSendString("play Latin.mid", NULL, 0, NULL);
Конечно, это только играет песню один раз.
Вот решение - ответ на вопрос, так же, как мой с марта 2014 года:
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;
Вы должны передать свой дескриптор окна, когда вы используете команду извещать поэтому он может послать команду MM_MCINOTIFY где-то.
... Так что мне нужно научиться сначала создавать классы, а затем, как сделать класс Windows, правильно? Я иду в правильном направлении? Я, наверное, откусываю больше, чем я могу пережевывать как полный новичок, поэтому любое направление, которое вы можете предложить, было бы здорово! Спасибо заранее.
EDIT: Вот пример того, что я хочу, просто с другим типом файла (PlaySound не любит .midi'S)
PlaySound("Panama.wav", NULL, SND_LOOP | SND_ASYNC);
Вы понимаете, как писать циклы? Если да, не можете ли вы просто поместить свои первые две строки кода внутри цикла, который будет выполняться бесконечно? –
Я знаю, как писать для и в то время как петли, но не будет ли программа просто застревать в цикле и не двигаться дальше, чтобы завершить остальную часть кода? – ABradford
Хм, похоже, вы не написали полное описание того, что хотите, потому что то, что вы на самом деле писали, было то, что вы хотели, чтобы песня «играла бесконечно», и цикл сделает это. Если ваш код должен зацикливаться на воспроизведении песни ... до тех пор, пока не будет выполнено какое-то условие ... ну а) вы должны были сказать нам это, и б) вы можете сделать это и в циклах. –