Маршрутизация аудио в tinyAlsa
Мы работаем над специальной платой с аудиокодеком, AM/FM-тюнером, гарнитурой BT, BT Classic, управляемой периферийным устройством I2S. Мы хотим направить звук из BT Classic в аудиокодек, из BT Classic в гарнитуру BT и так далее.
Мы планировали создать отдельные нити для подключения двух аудиоустройств. В области приложений мы предоставим отдельные идентификаторы устройств, которые укажут, какое устройство должно воспроизводить звук.
Мне нужно знать, как мы можем создать поток, связывающий 2 аудиоустройства? Кроме того, есть ли другие способы направить вывод различных аудиоустройств на другие аудиоустройства?
1 ответ
BluetoothAdapter.getDefaultAdapter().getProfileProxy(this, mScanCallback, BluetoothProfile.A2DP);
BluetoothProfile.ServiceListener mScanCallback = new BluetoothProfile.ServiceListener() {
@Override
public void onServiceConnected(int profile, BluetoothProfile proxy) {
if (profile == BluetoothProfile.A2DP) {
proxy.getConnectedDevices().forEach(device -> {
if (selectedDevice1 != null
&& selectedDevice1.getDeviceMAC().equalsIgnoreCase(device.getAddress())) {
try {
Class clazz = Class.forName("android.bluetooth.BluetoothA2dp");
Method method = clazz.getMethod("setActiveDevice", BluetoothDevice.class);
method.invoke(proxy, device);
} catch (Exception e) {
Log.e("TEST", "", e);
}
}
});
}
}
@Override
public void onServiceDisconnected(int i) {
}
};