Как воспроизводить звук одновременно с программой? - PullRequest
0 голосов
/ 12 июня 2011

Я хочу воспроизводить звук во время работы программы на С ++.Я использую код:

 void fighterplanesound() 
{PlaySound(TEXT("bombdrop.wav"), NULL, SND_FILENAME|SND_ASYNC);}

Я думал, что флаг SND_ASYNC исправит эту проблему, но это не так.Происходит приостановка программы или управление не будет двигаться, пока не закончится воспроизведение звука.Как я могу воспроизвести звук, пока программа продолжает работать.Для пояснения, программа представляет собой консольную программу Windows, которая работает в окне MS-DOS.

Ответы [ 3 ]

2 голосов
/ 12 июня 2011

Как насчет воспроизведения звука в другом потоке?

1 голос
/ 12 июня 2011

Хорошо.Я понял, что вы не можете включить метод PlaySound в функцию, потому что, несмотря на наличие флага ASYNC, элемент управления должен был полностью выполнить метод PlaySound перед возвратом, поэтому не помещайте его в функцию, пока не будеткод в функции (в этом случае звук будет воспроизводиться во время выполнения этого кода) или, другими словами, управление не вернется из функции, пока не завершится выполнение PlaySound, и поскольку в функции нет другого кода для выполнения, управление ожидаетпока метод PlaySound не закончится, а затем продолжит.

0 голосов
/ 12 июня 2011

На самом деле у меня была такая же проблема в моем приложении для iOS.Вы знаете, сколько времени занимает воспроизведение файла .wav.Вы можете создать Timer, который вызывает ваш метод fighterplanesound () каждый период времени окончания вашего файла.Не лучшее решение, но оно работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...