私はAudioTrackを使用してUDPソケットで受信したサウンドを再生しています。私は音とともに多くのノイズを受けているので、AudioManagerを使用することに決めました。しかし、AudioManagerはサウンドルーティングをアプリケーション境界を超えて変更します。以下は私が使用しているコードです。AudioTrackをAudioManagerで使用するsetSpeakerphoneOn
m_amAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
m_amAudioManager.setMode(AudioManager.MODE_IN_CALL);
m_amAudioManager.setSpeakerphoneOn(false);
このコードの問題は、私はアプリを閉じて音楽プレーヤーを起動したときに、音がフロントスピーカーとないususalバックスピーカーから来ていると私は何とかそれを変更することはできませんということです。 この問題を解決するために、私は自分のアプリケーションを閉じるときに次の行を追加することにしました。
しかし、この電話では、通話(通常の通話)を受信すると、デフォルトでスピーカーがオンになるという問題があります。私は本当にこれで助けが必要です。
お返事ありがとうございます。私はこの許可を使用しました。私の問題の一つを修正しました。スピーカーはデフォルトではオンになっていません。しかし、このコードで、私は音楽プレーヤーを実行しようとし、それはフロントスピーカーで実行を開始しました。それをデフォルトに変更する方法はありますか? – SoH
デフォルトは、アプリを起動する前にデバイスのユーザーが設定したものです。要点はAudioManagerの設定を復元する前の状態に復元することです。アプリが起動する前にspeakerPhoneがオフになっていると、アプリが停止してもオフになります。 – TouchBoarder
AudioTrackの起動後にモードを変更しても、@hsigmondでも問題ありませんか? – onmyway133