Определите чистый и работающий asound.conf для моего встроенного устройства - PullRequest
0 голосов
/ 20 февраля 2019

В настоящее время я использую очень сложный файл asound.conf из эталонного проекта BSP.Я хотел бы определить свой собственный asound.conf.

Моя текущая потребность на моем встроенном устройстве: воспроизводить монофайлы только с частотой 44100 Гц.В режиме динамика у меня только один выходной динамик.Когда я подключаю разъем, я должен слышать звук в обоих наушниках.Мне также нужно иметь возможность записи звука с микрофона в моно с частотой 11500 Гц.

Моя доступная звуковая карта:

# aplay  -l
**** List of PLAYBACK Hardware Devices ****
card 0: wm8960audio [wm8960-audio], device 0: HiFi wm8960-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: wm8960audio [wm8960-audio], device 1: HiFi-ASRC-FE (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
# 

Я не использую одинаковую частоту между выходом и входом,Но устройство ASRC позволяет мне поддерживать хорошую производительность при разных скоростях.Вот почему я хочу использовать устройство 1, а не устройство 0.

Я попытался определить свою конфигурацию следующим образом:

# cat /etc/asound.conf 
pcm_slave.out {
                pcm {
                        type hw
                        card 0
                        device 1
                }
                channels 2
                period_time 0
                period_size 512
                buffer_size 1024
                rate 44100
}

pcm.out_mono {
        ipc_key 1042
        type dmix
        slave out
        bindings.0 0
        bindings.0 1
}

pcm_slave.in {
                pcm {
                        type hw
                        card 0
                        device 1
                }
                channels 2
                rate 11025
}

pcm.in_mono {
        ipc_key 1043
        type dsnoop
        slave in
        bindings.0 1
}

Он отлично работает с динамиком (то есть только с одним динамиком) ипроизводительность процессора очень хорошая.Я играю звук, используя out_mono pcm. Но я могу слышать звук в одном наушнике только в режиме разъема , когда я использовал in_mono pcm.В asound.conf я пытался сказать, что хочу перенаправить монофонический звук на оба выхода, но он не работает:

    bindings.0 0
    bindings.0 1

Вторая строка привязок стирает первую ... Итак, яищу способ быть в состоянии услышать звук на двух выходах.Конечно, если я использовал по умолчанию pcm вместо out_mono , звук отлично работает на обоих выходах.

Неужели я что-то неправильно понял в определении asound conf?

1 Ответ

0 голосов
/ 20 февраля 2019

Плагин dmix имеет отображение 1: 1 своих каналов на подчиненные каналы.

Чтобы разрешить другие преобразования, используйте плагин plug.Его привязки могут быть настроены с ttable, но значения по умолчанию должны быть в порядке:

pcm.out_mono {
    type plug
    slave.pcm {
        ipc_key 1042
        type dmix
        slave out
    }
}
...