Je veux lire des données audio à l'aide d'ALSA sur un périphérique PCM. Comme exemple, j'ai téléchargé Cet exemple d'exemple et exécutez-le dans mon Pc. Cela fonctionne bien lorsque aucun autre processus n'utilise actuellement la carte son. Mais cela ne joue rien lorsque un autre processus utilise le périphérique audio (c'est-à-dire des chansons de jeu multimédia) et indique la suite d'erreur -
Playback open error: Device or resource busy
5 Réponses :
Vérifiez le fichier / dev / sndstat (si vous avez la couche de compatibilité OSS activée). Il devrait énumérer des périphériques audio qui correspondent aux périphériques ALSA de votre système. Et vous pouvez également vérifier / procéder / asz-asound / périphériques pour obtenir des fonctionnalités de chaque périphérique. P>
Essayez l'accès à différents périphériques de lecture (dans votre exemple, c'est "PLUGHW: 0,0" ouvert) en choisissant des noms différents pour snd_pcm_open (): Cela vient de ici : p>
pluiw: carte, appareil fort>. Les deux ont comme paramètres la carte (chaîne d'identité ou numérique index), appareil et éventuellement sous-dimensionné du matériel à accéder. p> blockQuote>
Non, je n'ai pas la couche de compatibilité OSS activée et je ne veux pas vraiment compter sur elle. J'ai également vérifié / Proc / Asound / Devices et a vu la liste des périphériques là-bas (je peux récupérer cette liste par programmation par programme). Je peux également accéder à différents périphériques de lecture. Mais aucun de ceux-ci n'est vraiment question ici. Je voulais savoir si je peux ouvrir un seul appareil en mode partagé.
Je n'ai pas pu trouver un moyen de partager un périphérique entre plusieurs processus. J'ai essayé d'utiliser le plugin Plutôt que d'utiliser ALSA, j'ai utilisé pulseaudio ensuite qui a résolu mon problème. P> dmix code> pour combiner plusieurs flux de lecture à l'aide du fichier .asoundrc code> de la configuration, mais cela n'a pas fonctionné pour une raison quelconque. J'ai essayé d'utiliser le périphérique par défaut code> de ma carte son, mais cela n'a pas fonctionné aussi. Selon une recommandation dans la liste de diffusion ALSA, j'ai essayé d'ouvrir le périphérique par défaut à l'aide de Par défaut: Carte = x code> comme paramètre Nom du périphérique sur la fonction SND_PCM_OPEN CODE> Fonction qui donne lieu à un Dispositif non trouvé code> erreur dans mon système. Apparemment, il n'y a aucun moyen de le faire (si quelqu'un peut trouver un moyen, veuillez mettre à jour cette réponse). P>
Merci, passez d'Alsa à PulseAudio dans mes paramètres de jeu de médias travaillés!
Le problème avec l'ALSA à l'aise, alors l'absence d'un plug-in mélangeur inséré dans la sortie par défaut. Dans les versions récentes d'ALSA, cela n'arrive plus que DMIX Plugin est désormais inclus dans le chemin de sortie par défaut. P>
(Vous pouvez recréer la carte son partagée em> problème pour vous-même si vous vous déconnectez avec avec pulseaudio, vous utilisez toujours ALSA comme backend, vous venez d'ajouter une couche avec un mélangeur (et une tonne d'autres choses que vous ne voulez probablement pas savoir).
Jack ferait exactement le même travail pour vous. P>
De nos jours, le plugin DMIX d'ALSA le fera pour vous, afin que vous puissiez vous débarrasser du middleware tel que des pulseudios et des vérins jusqu'à ce que vous ayez vraiment besoin des fonctions de système sonore non basique fournies. P>
Pour référence, recherchez Documentation .ASOndRC . P> ~ / .asoundrc CODE> ou si vous contournez le mélangeur en indiquant l'application d'utiliser directement le matériel Branchez. Notez que certaines applications, telles que la prise, vous essayeront d'utiliser directement le matériel, sinon de faire autrement.) p>
J'ai eu ce problème récemment avec audacieux et j'ai réussi à le réparer avec audacieux, alors je pensais que je partagerais ce que j'ai fait au cas où elle a mis la lumière sur les problèmes des autres personnes.
Les symptômes: P>
Si j'ai Firefox ouvert avec une onglet YouTube Ouvrir (pas même en cours d'exécution), alors quand j'essaie de jouer de la musique dans l'audace, je ne peux pas. Je reçois cette erreur: p>
PCM Device: sysdefault: CARD=Generic - HD-Audio Generic, Generic Analog Default Audio Device Mixer Device: hw: CARD=Generic - HD-Audio Generic Direct control device Mixer Element: Master