Вам необходимо выбрать устройство под названием «pulse» для PortAudio для работы с PulseAudio, который является звуковым сервером, используемым для обмена звуковыми картами в самых больших дистрибутивах Linux в настоящее время. Сообщение об ошибке говорит о том, что он пытается использовать интерфейс OSS / dev / dsp, который вообще не поддерживает совместное использование карт.
Вы можете использовать такой код для перечисления устройств:
for (int i = 0, end = Pa_GetDeviceCount(); i != end; ++i) {
PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
if (!info) continue;
printf("%d: %s\n", i, info->name);
}
Затем укажите правильное число для OpenStream в параметре stream.
Обратите внимание, что вам нужен PortAudio v19. Более старая версия 18 поддерживала только OSS.