Прямо сейчас я пытаюсь запустить пример программы, опубликованной в разделе воспроизведения документации RtAudio, где воспроизводится гребенка Sawtooth (https://www.music.mcgill.ca/~gary/rtaudio/playback.html). Когда я компилирую, я не получаю исключений, но на самом деле я ничего не слышу (да, моя громкость полностью повышена).
Мне пришлось внести следующие изменения в программу, чтобы указать устройство, поскольку getDefaultOutputDevice () возвращал 0, а не число, соответствующее динамику с моего ноутбука.
RtAudio dac;
...
RtAudio::StreamParameters parameters;
parameters.deviceId = 1; // was set to dac.getDefaultOutputDevice() originally
parameters.nChannels = 2;
parameters.firstChannel = 0;
(Устройство 1 соответствует устройству с именем «Динамики / Наушники (Realtek Audio) "на моем компьютере.)
Я запускаю код в Visual Studio и обязательно добавляю WIN32
и __WINDOWS_DS__
в определения моего препроцессора и включаю dsound.lib
в дополнительные зависимости, как было указано в этом сообщении. Итак, теперь программа работает и может выводить Playing ... press <enter> to quit
на экран без прерывания из-за исключения, но на самом деле ничего не воспроизводится.
Я понимаю, что вам может быть сложно что-либо сделать без имея физический доступ к моему ноутбуку, но может ли кто-нибудь порекомендовать мне некоторые вещи, которые я могу попробовать, чтобы программа заработала?