13

从我的 android 应用程序中,我想将音频流式传输到任何可用的扬声器,如A2DP扬声器、docking扬声器或car扬声器。

为此,我想使用蓝牙连接并通过蓝牙连接流式传输......

我看到了以下链接

在android上如何从a2dp重新路由音频

setBluetoothA2dpOn(布尔值)

Android 2.3:如何从 SCO 切换到 A2DP 以获得功能强大的蓝牙扬声器?

但是我到处都发现了相同的..即

public void setBluetoothA2dpOn (boolean on)

This method is deprecated.
Do not use. 

请指导我如何做到这一点..或者建议是否可以使用其他方式完成..任何帮助/建议表示赞赏。

编辑

清单中的许可:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

代码 :

@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);
    }
} 
4

2 回答 2

3

我推荐你这个链接请试试这个

Android:通过 Sco 蓝牙耳机播放声音

TTS 输出总是去 A2DP

我觉得这个链接可以帮助你

于 2012-09-12T12:58:36.520 回答
1

这是服务中蓝牙 A2DP 的实现。您可以参考此代码并构建自己的代码。

A2DP蓝牙服务

于 2012-09-17T07:29:17.113 回答