デュアルスクリーンセットアップを作成しようとしています。 Androidタブレット(Nexus 10)は、HDMIを使用して別の画面に接続されています。ヘッドセットとスピーカフォンのオーディオ出力を同時に行います
(VLCなどのアプリケーションを使用して)タブレットで映画を再生すると、両方の画面に正しく表示されます。
ただし、オーディオ信号はHDMI経由でのみ転送されます。 を使用して、のオーディオ出力をヘッドセットまたはHDMIにすることができました。
両方のデバイスの音声出力を同時に設定する機能が表示されません。 Audio Managerで設定しようとしましたが、1つのチャンネルでしか動作しません。
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setSpeakerphoneOn(true);
am.setWiredHeadsetOn(true);
私が気づいたもう一つは、その後、プラットフォームのオーディオシステムに変数を渡しsetParametersをAPIです。それはALSAかもしれません、おそらく解決策はありますか?
Thx&はすべて意味があります。私の理解を確認するには:カスタマイズされたAndroidシステム(例えば私はOEMで、自分のバージョンを配布することができます)には、修正された 'ALSADevice.cpp'が含まれていて、同時にHDMIとSpeaker用にルートが設定されています。残っている唯一の懸念は、 'getUCMDevice'関数が単一のオーディオデバイスを返すかもしれないということです。だから私は最初にルートを追加してから、そこにルートID /名前を返すべきですか? –
AudioPolicyManagerが実際に使用しているストリームタイプ(または少なくとも_some_ streamタイプ)に対してHDMI + Speakerを実際に選択していることを確認する必要があります。次に、ALSADeviceはコンボUCMデバイス(例えば 'SND_USE_CASE_DEV_HDMI_SPEAKER'のようなもの)を選択する必要があります。最後に、新たに追加された実際の設定(低レベルのルーティングと呼ぶもの)を追加するためにUCMファイル(snd_soc_msm_blabla) UCMデバイス。もちろん、プラットフォームはこれを実際にサポートする必要があります。 – Michael
ありがとうございます、あなたのアプリケーション内のデータストリームをコピーし、自分で別の出力デバイスに送信するようなことができますか? –