オーディオインジェクターサウンドカードでの arecord と aplay

オーディオインジェクターサウンドカードでの arecord と aplay

Raspberry Pi3 で arecord と aplay を使用して fifo を作成したいと考えています。オーディオ インジェクターから音楽信号を一方の端に送信すると、正しく表示されますが、もう一方の端では音楽が無効になります。「arecord -f S16_LE -r 44100 -V stereo -c1 -D plughw:2 | aplay -D plughw:2」を使用しています。

解決方法と、ctrl+c を使用せずにそのコマンドを停止する方法を教えてください。

答え1

何をしようとしているのかよく分かりません。特に「相手側で音楽を無効にする」というのは理解できませんが、

1) オーディオ ストリームの転送は、ALSA よりも Pulseaudio (または jack) の方がはるかに簡単です。

2)arecordパイプで使用する場合、WAV 形式を使用しないでください。WAV ヘッダーには長さエントリがあり、パイプでは入力できないためです。raw ( -t raw) を使用して で正しいパラメータを指定するaplayか、SUN オーディオ形式 ( -t au) を使用してください。

3) arecord-aplay パイプは、Ctrl + C で停止するか、プロセスの 1 つまたは両方が ( を使用してkill) 終了するまで実行されます。これ以外の方法はありません。

答え2

コマンドを停止するには、次のように、秒単位の期間変数 (-d) を arecord に追加します。

arecord -f S16_LE -r 44100 -V stereo -c1 -d2 -D plughw:2 | aplay -D plughw:2

このコマンドは、-d2 または 2 秒後に録画を停止します。

alsamixer コマンドを使用すると、ミキサー設定を変更できます。これにより、入力 (マイクまたはライン) を選択できるほか、出力 hifi (音を聞くため) を有効にしたり、CPU ではなくアナログ システムを介してオーディオ入力を直接出力にルーティングするバイパス モードを有効にしたりできます。バイパス モードでも、arecord を使用して信号をキャプチャできます。

関連情報