1

そのため、ヘッドセットからスピーカーにオーディオをルーティングするために、Stack Overflow にあるコードを使用しようとしています。

私が現在行っていることは次のとおりです。

AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.STREAM_MUSIC);
am.setSpeakerphoneOn(true);
sleep(15000);

何が起こるかというと、オーディオは「スリープ」中にルーティングされますが、15 秒後にヘッドセットに戻ります。スリープせずにこれを実行すると、音がスピーカーに行き、ヘッドセットに非常に速く戻ります。

この呼び出しの後、私のプログラムは終了します。アプリHeadset Toggleが行うように、これがシステム内に保持されることを望みます

4

1 に答える 1

0

私の方法が機能しない理由はわかりませんでしたが、回避策を見つけました。

私が現在行っていることは次のとおりです。

Class audioSystemClass = Class.forName("android.media.AudioSystem");
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class);
// First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go back to the default
// behavior, use FORCE_NONE (0).
setForceUse.invoke(null, 1, 1);

この投稿のマイケルに感謝します。

于 2015-09-29T12:28:19.380 に答える