특정 카드에 대해 alsa pcm.dmix.rate를 구성하시겠습니까?

특정 카드에 대해 alsa pcm.dmix.rate를 구성하시겠습니까?

모든 사람. 내 물리적 위치에 따라 시스템에 있을 수도 있고 없을 수도 있는 외부 USB 사운드 카드가 있습니다. 이전에는 이 카드를 기본적으로 사용했기 때문에 다음과 같은 구성이 제대로 작동했습니다.

defaults.ctl.card 1
defaults.pcm.card 1
defaults.pcm.dmix.rate 176400
defaults.pcm.dmix.format S32_LE
defaults.timer.card 1

그러나 해당 카드가 전혀 없을 수 있으므로 이를 기본값으로 정의하는 것은 더 이상 작동하지 않으며 pcm.dmix.rate내장 카드 0(무엇이든) pcm.dmix.format에 대한 카드별 생명 시스템 기본값을 다시 정의해야 합니다.

간단한 검색을 했지만 가상 PCMS 마녀를 정의하는 예만 찾았는데 이는 제가 찾고 있는 것이 아닙니다.

aplay -l 출력:

card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Pro [DX3 Pro], device 0: USB Audio [USB Audio] <- optional card of interest
  Subdevices: 0/1
  Subdevice #0: subdevice #0

다음은 올바른 샘플 속도와 형식을 사용하여 완벽하게 작동하는 dmix "장치"로 구성된 외부 카드입니다.

pcm.dx3proDM {
    type dmix
    ipc_key_add_uid true
    ipc_key 2048 # mandatory, mast be unique
    ipc_perm 0660
    ipc_gid audio
    slave {
        pcm "hw:1"
        rate 176400
        format "S32_LE"
        channels 2
        period_time 0
        period_size 1024
        buffer_size 8192 # mandatory parameter
    }
    bindings {
        0 0
        1 1
    }
}

문제는 시스템에서 dx3proDM을 사용할 수 없다는 것입니다(예를 들어 Audacous에서는 ii를 출력 장치로 선택할 수 없습니다).

이를 가리키도록 기본값을 다시 정의해야 합니다.

pcm.!default{
    type plug
    slave.pcm "dx3proDM"
}

다시 기본값으로 설정 - 내가 원하는 것과 정반대입니다.

여기에 아이디어가 있나요?

답변1

아직 문제를 이해하지 못할 수도 있지만 웹캠을 다음과 같이 구성합니다.

pcm.webcam {
  type plug
  slave {
    pcm "front:U0x46d0x809"
    rate 48000
    format "S16_LE"
  }
}

을 사용하는 대신에 필요한 이름을 사용 하고 이 방법으로 aplay -L필요한 매개변수를 설정하는 등 옵션 외부 카드를 이와 같이 구성할 수 없는 이유가 있습니까 ?plugdefaults

구성 카드를 구체적으로 만들고 webcam필요할 때 플러그인을 출력으로 수동으로 선택하면 defaults.


문제는 시스템에서 dx3proDM을 사용할 수 없다는 것입니다(예를 들어 Audacous에서는 ii를 출력 장치로 선택할 수 없습니다).

완전히 사용할 수 있지만(비슷한 것을 시도해 보십시오 aplay -D dx3proDM some_file.wav) 일부 앱에서는 플러그인을 나열하지 않고 장치 이름을 입력할 수 없습니다. 이는 ALSA가 아닌 애플리케이션의 제한 사항입니다.

여전히 이를 가리키도록 기본값을 다시 정의해야 합니다 [...]

udev그런 다음 (1) 스크립트를 사용하여 변경하거나 (2) Pulseaudio를 사용하여 즉시 작동하도록 하는 방법 으로 돌아갑니다 .

관련 정보