Comment envoyer l'audio à la fois à la prise casque et HDMI simultanément?

12

J'ai besoin d'envoyer l'audio via HDMI et la prise casque 3,5 mm simultanément. Je n'ai rien trouvé là-dessus. Est-ce seulement possible?

Joker327
la source
Voulez-vous lire un son identique ou deux flux audio différents ?
tremby

Réponses:

7

Pas de réponse complète mais quelques réflexions à ce sujet.

Jetons un coup d'œil au côté matériel: les schémas ne sont malheureusement pas utiles pour le Pi B + et ne sont même pas disponibles pour le Pi2, nous sommes donc coincés avec B Rev 2.1 ici pour l'instant.

La sortie audio de la prise casque est générée par PWM. Directement depuis les broches GPIO 40 et 45 du BCM2835 via un filtre passe-bas RC. (Voir schémas , page 2.)

L'audio sur le HDMI d'autre part est censé être transmis numériquement. Wikipédia déclare: "Pour l'audio numérique, si un appareil HDMI a de l'audio, il est nécessaire d'implémenter le format de base: PCM stéréo (non compressé)." Et en effet, l'audio analogique PWM mentionné ci-dessus n'est pas alimenté par le connecteur HDMI.

Alors maintenant, nous avons vérifié certaines vieilles nouvelles: prise casque analogique vs HDMI numérique. De mon point de vue, ces deux aspects devraient être traités séparément et indépendamment, donc aussi (quasi-) simultanément. Il PulseAudiodevrait maintenant être en mesure de diffuser à partir d'une seule source vers plusieurs pièces de matériel audio. Je me demande toujours pourquoi il n'y a rien à trouver sur le web à ce sujet.

Ghanima
la source
Je suis d'accord qu'ils doivent être adressés séparément, une personne pour laquelle je travaille sur un Raspberry Pi m'a demandé et ils ont demandé à le faire, je leur ai expliqué que je ne pensais pas que c'était possible, mais je devrais vérifier avec d'autres qui en savent plus que moi
Joker327
3

J'aimerais pouvoir faire la même chose aussi. Au moins j'essaie de contribuer à cette tendance avec quelques idées en espérant un développement coopératif éventuel.

Ce qui me vient à l'esprit, c'est qu'il pourrait (et devrait) y avoir deux instances de module de pilote chargées en parallèle, chacune pour une route de signal. Cependant, cela nécessiterait certains paramètres au niveau du module du noyau, comme dans l'exemple idéal ci-dessous, chacun créant un périphérique ALSA (numéro 0 pour HDMI et 3 pour les écouteurs dans l'exemple). Vous pouvez alors envoyer du son à l'un et à l'autre (ou copier les deux).

J'ai essayé de google pour la page d'accueil du code source du module snd_bcm2835 (pour évaluer la faisabilité d'un correctif simple), mais pas de chance (et de temps), alors j'ai abandonné pour l'instant. Si quelqu'un trouve la source et contribue le lien, je vais y revenir.

REMARQUE !!! Ce qui suit n'est qu'un exemple idéal de commandes de chargement de module du noyau. Dans le logiciel Raspberry Pi actuel, aucun de ces paramètres (AFAIK) n'existe!

modprobe snd_bcm2835 out=hdmi alsa=0
modprobe snd_bcm2835 out=ear alsa=3
pmendl
la source
Bonjour et bienvenue! Je serais également intéressé à ce que cela fonctionne (bien pour être honnête, à aucune utilisation réelle en particulier;))
Ghanima