Маршрутизация аудио в 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) {
    }
};
Другие вопросы по тегам