2012-06-06 77 views
1

現在我可以通過A2DP開始播放音頻併成功切換到SCO,但是當我嘗試切換時,它會通過手機揚聲器播放。Android 2.3:如何從SCO切換到支持藍牙音箱的A2DP?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    layout = (RelativeLayout) findViewById(R.id.layout); 
    text = (TextView) findViewById(R.id.editText1); 
    scoSwitch = (ToggleButton) findViewById(R.id.switch1); 
    try { 
     mp1 = MediaPlayer.create(this, R.raw.jc_cm); 
     mp2 = MediaPlayer.create(this, R.raw.rp); 
     amanager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
     //amanager.setBluetoothA2dpOn(true); 
       } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

public void onSCOswitch(View view){ 
    if (scoSwitch.isChecked()){ 
     amanager.setBluetoothScoOn(true); 
     amanager.startBluetoothSco(); 
     Log.d("Bluetooth", "SCO on"); 
     amanager.setMode(AudioManager.MODE_IN_COMMUNICATION); 
    } 
    else{ 
     amanager.stopBluetoothSco(); 
     amanager.setBluetoothScoOn(false); 
     amanager.setBluetoothA2dpOn(true); 
     Log.d("Bluetooth", "SCO off"); 
     amanager.setMode(AudioManager.MODE_NORMAL); 
    } 
} 

回答

0

我只能在這裏提供幫助,建議您儘量遠離BT音頻路徑路由。 這是一個非常難以解決的問題,這就是爲什麼很少有應用程序(除了電話應用程序本身)路由BT音頻路徑,而少數嘗試它的應用程序可能都有一些不良結果。

http://developer.android.com/reference/android/media/AudioManager.html#setBluetoothA2dpOn(boolean):

公共無效setBluetoothA2dpOn(布爾上)

此方法已。 請勿使用。

+0

一年後,這仍然是不可能的? – frankish

+0

我可能會在接下來的幾周/幾個月內重新審視這個問題。如果我發現任何東西,我會更新這個線程。 – swooby