스테레오 재생 및 캡처를 위해 ALSA 플러그인 dmix 및 dsnoop 사용 및 구성

스테레오 재생 및 캡처를 위해 ALSA 플러그인 dmix 및 dsnoop 사용 및 구성

내 컴퓨터에 새로운 PCI 기반 사운드 카드를 설치했습니다. 입력 및 출력을 위해 각각 1부터 8까지 번호가 매겨진 8개의 S/PDIF 기반 I/O 쌍이 있습니다. 3-8번 라인을 스테레오 입력(마이크)으로 사용하고 3-8번 라인을 스테레오 출력(재생)으로 사용해 보았습니다.

  • 라인 3 + 라인 4 = 채널 1(입력 및 출력),
  • 라인 5 + 라인 6 = 채널 2(입력 및 출력),
  • 라인 7 + 라인 8 = 채널 3(입력 및 출력).

그래서 다음을 만들었습니다 .asoundrc.

pcm.!default {
    type plug
    slave {
       pcm "hw:1,0"
    }
}

ctl.!default {
    type hw
    card 1
}


pcm.play_out_44 {
    type dmix
    ipc_key 1201
    ipc_key_add_uid true
    slave {
        pcm "hw:1,0"
        channels 2
        rate 44100
        format S32_LE
        buffer_size 4096
        period_size 1024
    }
}

pcm.rec_in_44 {
    type dsnoop
    ipc_key 1210
    slave {
        pcm "hw:1,0"
        channels 2
        rate 44100
        buffer_size 4096
        period_size 1024
    }
}


pcm.outch1 {
    type plug
    slave {
        pcm "play_out_44"
        bindings { 
            2 2
            3 3
        }
        hint.description "PCI Card Stereo output/playback channel 1 (from output ports 3 & 4)"
    }
}

pcm.inch1 {
    type plug
    slave {
        pcm "rec_in_44"
        bindings { 
            2 2
            3 3
        }
        hint.description "PCI Card Stereo input/capture channel 1 (from input ports 3 & 4)"
    }
}

pcm.outch2 {
    type plug
    slave {
        pcm "play_out_44"
        bindings { 
            4 4
            5 5
        }
        hint.description "PCI Card Stereo output/playback channel 2 (from output ports 5 & 6)"
    }
}

pcm.inch2 {
    type plug
    slave {
        pcm "rec_in_44"
        bindings { 
            4 4
            5 5
        }
        hint.description "PCI Card Stereo input/capture channel 2 (from input ports 5 & 6)"
    }
}

pcm.outch3 {
    type plug
    slave {
        pcm "play_out_44"
        bindings { 
            6 6
            7 7
        }
        hint.description "PCI Card Stereo output/playback channel 3 (from output ports 7 & 8)"
    }
}

pcm.inch3 {
    type plug
    slave {
        pcm "rec_in_44"
        bindings { 
            6 6
            7 7
        }
        hint.description "PCI Card Stereo input/capture channel 3 (from input ports 7 & 8)"
    }
}

상술 한 바와 같이여기dmix, 내 구성에 맞게 새로운 유형을 만들었습니다 . 그런데 재생 및 캡처 시도를 열려고 하면 Audacity, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , inch1, inch2, inch3, outch1.outch2outch3

.asoundrc내 장치에서 스테레오 재생 및 스테레오 캡처를 수정하거나 생성하려면 어떻게 해야 합니까 ?

답변1

outch기존 스테레오 사운드 카드를 사용하여 플러그 문제를 재현해봤습니다. inch플러그에도 비슷한 문제가 있는 것 같아요 .

문제는 이 필드가 sum plugs필드를 허용하지 않는다는 것 입니다 . 별로 필요 없을 것 같은데bindingshinthintbindings입력 dmix하거나dsnooper(바라보다여기)

매번 굵게 표시할 필요 없이 설정을 더 빠르게 디버깅하려면 다음과 같이 하십시오(그리고 문제를 진단하는 방법).

  • PCMS에 파악하기 쉬운 이름을 지정하십시오. 항상 "xx"로 시작하도록 이름을 바꿨습니다.
  • 달리기 aplay -L | grep xx. 그럼 적어도 해야 해바라보다당신의 PCM. 당신의 벗겨진 .asoundrc를 보면 알겠습니다.

.

   xxplay_out_44
   xxoutch1
  • 다음과 같은 wav 파일을 찾으세요.locate *.wav | head
  • 이전 단계에서 발견한 pcms 중 하나를 사용하여 wav 파일을 재생합니다.

.

    > aplay -D xxoutch1  /usr/share/sounds/sound-icons/xylofon.wav 
    ALSA lib pcm.c:7448:(snd_pcm_slave_conf) Unknown field bindings

이제 멋진 오류 메시지가 표시됩니다. 해당 필드를 제거하면 bindings불평이 표시됩니다 hint.

관련 정보