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 回答