2

私のアプリでは、ユーザーがオーディオ出力を内部ハンドセット スピーカー、スピーカーフォン、およびステレオ BT (A2DP) ヘッドセットの間で切り替えることができます。有線ヘッドセットが接続されている場合、内蔵スピーカーまたは A2DP を選択することはできません。どちらの方法でも、音声は有線ヘッドセットから再生されます。BT ヘッドセットで強制的に再生する方法はありますか?

API 5 以降を使用すると、音声パスを暗黙的に設定するすべてのメソッドが廃止されるため、これを行う方法がわかりません。どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

-1

有線ヘッドセット + BT ヘッドセットが接続されている場合、内部スピーカー (Android デバイスのスピーカーを意味する場合) または有線ヘッドセットに切り替えることができます

    AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
    audioManager.setMode(AudioManager.MODE_IN_CALL);

    // true - switch to internal speakers; false - to wired headsets
    audioManager.setSpeakerphoneOn(true);


    mMediaPlayer = MediaPlayer.create(AudioTests.this, R.raw.test_cbr);
    mMediaPlayer.start();

しかし、この場合は BT ヘッドセットに切り替えるのが問題です。このコードは、への切り替えには役立ちません

    // instead of audioManager.setSpeakerphoneOn(true);
    audioManager.setMode(0);
    audioManager.setBluetoothScoOn(true);
    audioManager.startBluetoothSco();
于 2014-05-29T10:20:27.660 に答える