какое имя устройства должно, я должен дать в snd_pcm_open кроме “значения по умолчанию”

Значение по умолчанию zsh конфигурация для Debian (и вероятно Ubuntu) просто не включает поддержку command-not-found пакет на значение по умолчанию.

Чтобы иметь ту же функциональность, просто необходимо получить /etc/zsh_command_not_found в Вашем ~/.zshrc на значение по умолчанию через:

[ -f /etc/zsh_command_not_found ] && . /etc/zsh_command_not_found

Это должно загрузить и включить command-not-found функциональность в zsh.

8
20.03.2017, 12:18
3 ответа

попытка, работающая

$ cat /proc/asound/devices
  1:        : sequencer
  2: [ 0- 3]: digital audio playback
  3: [ 0- 0]: digital audio playback
  4: [ 0- 0]: digital audio capture
  5: [ 0- 3]: hardware dependent
  6: [ 0- 0]: hardware dependent
  7: [ 0]   : control
 33:        : timer

, использует первое аудиоустройство, которое имеет номер устройства кроме нуля

0
27.01.2020, 20:13

Я думаю, проблема в том, что front: , из другой вопрос , не работал бы с спереди: относится к набору динамиков, а не к микрофону или записывающему устройству. Вы можете использовать формат hw: CARD = X, Y , но вы получите немного больше гибкости, если будете использовать, как предлагает @CL, plughw: CARD = X, Y . Plughw может автоматически позаботиться о передискретизации или преобразовании значений по сравнению с hw: CARD = X, Y .

На основе ваших выходных данных arecord -l и arecord -L :

  • Внутренний микрофон должен быть: plughw: DEV = 0, CARD = PCH или просто plughw: PCH, 0
  • USB Веб-камера должна быть: plughw: DEV = 0, CARD = U0x46d0x825 или просто plughw: U0x46d0x825,0
0
27.01.2020, 20:13

Если вы запускаете и Pulseaudio, и ALSA, происходит следующее: Pulseaudio по умолчанию предоставляет уровень совместимости, используя конфигурацию, аналогичную

pcm.!default pulse
ctl.!default pulse

Это означает, что если вы snd_pcm_openиспользуете defaultустройство, вы общаетесь с Pulseaudio, который затем направляет вас в соответствии с предпочтениями, сохраненными для имени приложения.

Pulseaudio также открывает устройства ALSA при их использовании. Устройства ALSA hwможно открыть только один раз, поэтому, как только Pulseaudio откроет их, вы получите сообщение об ошибке «занято», если попытаетесь получить к ним доступ через API ALSA. Это также относится к подключаемым модулям, предоставляемым автоматически, таким как front, plughwи т. д. Вы ушли, используя plughw, потому что Pulseaudio еще не открыл их, когда вы попытались это сделать, в общем случае это не сработает.

Возможные варианты::

(1 )Полностью остановите Pulseaudio, затем вы сможете открывать устройства ALSA с помощью snd_pcm_openлюбым удобным для вас способом, используя CARDи т. д. для идентификации устройства.

(2 )Используйте API Pulseaudio.

(3 )Создайте комбинированное устройство для ваших двух звуковых карт либо в ALSA, либо в Pulseaudio, и вручную установите его в качестве предпочтительного приемника для вашего приложения, затем используйте уровень совместимости Pulseaudio через default.

1
27.01.2020, 20:13

Теги

Похожие вопросы