У меня есть программа, использующая PortAudio. В настоящее время я запускаю его с Pa_OpenDefaultStream (& stream, 0, 2, paFloat32, 44100, 256, audioCB, udata)
, но когда я компилирую и запускаю свою программу, она не воспроизводит звук, если другая программа в данный момент работает (например, музыкальный проигрыватель). Строка ошибки: Ошибка PortAudio: Устройство недоступно
Я думаю, мне нужно вместо этого запустить Pa_OpenStream
, но я не уверен, что мне следует передать, чтобы он хорошо работал с другими программы.
для справки, я попытался распечатать информацию о доступных устройствах, но не уверен, что с этой информацией делать.
Device 0
name /dev/dsp
hostAPI 0
maxInputChannels 16
maxOutPutChannels 0
defaultLowInputLatency 0.011610
defaultLowOutputLatency -0.117208
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.000000
defaultSampleRate 44100.000000
Device 1
name /dev/dsp1
hostAPI 0
maxInputChannels 16
maxOutPutChannels 0
defaultLowInputLatency 0.011610
defaultLowOutputLatency -0.117208
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.000000
defaultSampleRate 44100.000000
Default Device -1
При написании этого вопроса, Я также только что заметил, что maxOutputchannels меняется в зависимости от того, пытается ли другая программа воспроизводить звук. По крайней мере, я думаю, что в этом разница. У меня было приостановленное видео на YouTube на другой вкладке браузера, которую я закрыл, и когда я перезапускаю свою программу, она выводит следующее:
Device 0
name /dev/dsp
hostAPI 0
maxInputChannels 16
maxOutPutChannels 16
defaultLowInputLatency 0.011610
defaultLowOutputLatency 0.011610
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.046440
defaultSampleRate 44100.000000
Device 1
name /dev/dsp1
hostAPI 0
maxInputChannels 16
maxOutPutChannels 0
defaultLowInputLatency 0.011610
defaultLowOutputLatency 0.011610
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.046440
defaultSampleRate 44100.000000
Default Device 0