Pourquoi ne PortAudio joue pas bien avec d'autres programmes audio ou comment puis-je obtenir à?

StackOverflow https://stackoverflow.com/questions/2351884

  •  23-09-2019
  •  | 
  •  

Question

Je suis en train d'écrire une application audio à l'aide PortAudio, mais si d'autres programmes audio (généralement Firefox) sont en cours d'exécution au moment où je tente d'exécuter mon programme, je reçois l'erreur suivante:

PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.

De toute évidence, ce qui rend mon programme assez inutile car il ne fonctionnera pas si un autre programme utilise son. Est-il un moyen de contourner ce problème ou devrais-je pas utiliser PortAudio?

Était-ce utile?

La solution

Vous devez choisir un dispositif nommé « impulsion » pour PortAudio de travailler avec PulseAudio, qui est le serveur de son utilisé pour le partage de la carte son sur les plus grands de nos jours des distributions Linux. Le message d'erreur indique qu'il tente d'utiliser l'interface OSS / dev / dsp, qui ne prend pas en charge le partage de cartes du tout.

Vous pouvez utiliser le code comme celui-ci pour la liste des périphériques:

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);
}

Ensuite, fournir le bon nombre de OpenStream dans les paramètres de flux.

Notez que vous avez besoin PortAudio v19. L'ancien V18 ne OSS pris en charge.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top