回答:
完全な答えを出すのではなく、その点に関するいくつかの考えを述べます。
ハードウェア側を見てみましょう:残念ながら、Pi B +には役に立たず、Pi2には利用できない回路図なので、ここではB Rev 2.1に固執しています。
ヘッドフォンジャックのオーディオ出力はPWMによって生成されます。BCM2835のGPIOピン40および45から、RCローパスフィルターを通過します。(2ページの回路図を参照)
一方、HDMIのオーディオはデジタル送信されます。ウィキペディアには、「デジタルオーディオの場合、HDMIデバイスにオーディオがある場合、ベースライン形式であるステレオ(非圧縮)PCMを実装する必要があります。」実際、前述のPWMベースのアナログオーディオは、HDMIコネクタに供給されません。
そこで、アナログヘッドフォンジャックとデジタルHDMIの古いニュースを確認しました。私の観点からは、これら2つは別々に独立して対処する必要があり、したがって(準)同時に対処する必要があります。これでPulseAudio
、1つのソースから複数のサウンドハードウェアにストリーミングできるようになります。私はまだ、これに関してウェブ上で見つけられるものがないのはまだ疑問に思っています。
私も同じことをできるようになりたいです。少なくとも私は、最終的な共同開発を期待するいくつかのアイデアでこの傾向に貢献しようとします。
私の頭に浮かぶのは、それぞれが1つの信号ルートに対応して、ドライバーモジュールの2つのインスタンスが並行してロードされる可能性がある(そしてそうあるべき)ということです。ただし、これには以下の理想的なサンプルのようにいくつかのカーネルモジュールレベルのパラメーターが必要であり、それぞれが1つのALSAデバイスを作成します(HDMIの場合は0、サンプルのイヤホンの場合は3)。その後、一方にサウンドを送信し、他方にサウンドを送信(または両方にコピー)できます。
snd_bcm2835モジュールのソースコードホームページ(単純なパッチの実行可能性を評価するため)をグーグルで検索しようとしましたが、運(および時間)がなかったため、今のところあきらめました。誰かがソースを見つけてリンクを寄稿したら、私はそれをもう一度見ます。
注意 !!!以下は、カーネルモジュールの読み込みコマンドの理想的なサンプルです。実際のRaspberry Piソフトウェアには、そのようなパラメーター(AFAIK)は存在しません!
modprobe snd_bcm2835 out=hdmi alsa=0
modprobe snd_bcm2835 out=ear alsa=3