Androidデバイスでadbシェルを介して実行されているネイティブLinuxプログラム内で、オーディオをキャプチャしようとしています。
私は(非常に静かな)ノイズしか得ていないように見えたので、つまり実際の信号はありませんでした(興味深いことに、同様のことを行う Android/Java プログラムは、その入力に信号があることを示していました)。alsa_amixer を実行しました。合ってるやつ:
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch penum
Capture channels: Front Left - Front Right
Limits: Capture 0 - 63
Front Left: Capture 31 [49%] [0.00dB] [off]
Front Right: Capture 31 [49%] [0.00dB] [off]
"オフ"。それはノイズを説明するでしょう。そこで、alsa_amixer を使用してチャンネルのミュートを解除する方法の例を探したところ、「49% オン」や「49% ミュート解除」、または単に「ミュート解除」などのパラメーターのさまざまな提案が見つかりましたが、どれも機能しませんでした。(ボリューム % が省略されている場合、「無効なコマンド!」と表示されます。それ以外の場合、ボリュームは設定されますが、オン/ミュート解除は無視されます)
また、これをプログラムで行う方法も検索しました (手動のアプローチが今のところ役に立ちますが、最終的にはこれを行う必要があります) が、あまり幸運ではありませんでした。私が見つけた唯一のALSA libコマンドは、「snd_mixer_selem_set_capture_switch_all」でした