오디오 입력은 항상 웹캠 마이크가 될 수 있습니까?


14

Skype를 사용할 때마다 사운드 환경 설정으로 이동해야합니다. 거기에서 오디오 입력을 " 웹캠 "으로 돌리고 " 음소거 "버튼을 선택 취소하십시오 . 꽤 성가신 일입니다. 항상 같은 구성을 유지하는 방법이 있습니까?


1
로지텍 quickacam과 함께이 문제가 있습니다. 모든 재부팅 후에는 기본 설정을 수행하고 기본 입력으로 재설정해야 작동합니다. 사운드 환경 설정이 설정된 후 USB 장치가로드되어 펄스 또는 alsa가 USB 마이크를 "보지"않는 것과 관련이 있다고 생각합니다. 불행히도 "문제"는 실제로 문제가되지 않기 때문에 셔츠 소매를 감아 구성 파일을 통해 파고 편집을 시작하는 것은 그리 중요하지 않습니다.

답변:


14

PulseAudio의 기본 설정 변경

pulseaudio를 실행할 때 사용자 정의 구성 파일을 .pulseHOME 의 숨겨진 디렉토리에 넣어 모든 설정을 정의 할 수 있습니다 . 이러한 파일이 아직 없으면 표준 파일을 /etc/pulse/템플릿으로 사용할 수 있습니다 . 대부분의 항목에는이 파일에 대한 자세한 설명이 있습니다.

  • ~/.pulse/default.pa 모듈을로드하고 기본값을 정의
  • ~/.pulse/client.conf 사운드 서버용 클라이언트를 구성하는 방법
  • ~/.pulse/daemon.conf 샘플링 속도 및 버퍼를 정의

웹캠을 기본 소스로 만들려면 터미널에서 다음 명령으로 생성 된 목록을 통해이 소스의 이름과 번호를 알아야합니다.

pacmd list-sources

그런 다음 다음 줄을 편집하십시오 ~/.pulse/default.pa.

set-default-source [name]

[name]원하는 소스의 이름 또는 소스 번호로 대체하십시오 . 그런 다음이 줄을 추가하여 소스를 음소거 해제해야합니다.

set-source-mute [name]|[#n]> 0

출처의 이름이나 색인을 제공하십시오. PulseAudio Wiki 에서 참조되는 다양한 기타 설정을 추가 할 수 있습니다 (현재 맨 페이지 :)man pulse-cli-syntax .

구성 파일을 변경하기 전에 먼저 명령 행 인터페이스를 통해 모든 명령을 테스트하는 것이 좋습니다. 이것은 터미널에서 열 수 있습니다pacmd


내 .pulse 폴더에는 default.pa가 없습니다. 한 줄로 새 파일을 만들어야합니까 : set-default-source x?
To Do

3
@ToDo 기본 설정은입니다 /etc/pulse/default.pa. 이 파일을 사용하거나 ~/.pulse편집 하기 전에 복사하십시오 .
Takkat

완전성을 위해 :의 출력 중괄호 안에 쓰여진 것을 입력 장치 이름으로 작성해야합니다 pacmd list-sources. 즉 내 장치와 함께였습니다 set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon.
Hi-Angel

@ Hi-Angel : 고마워요. 답변은 훨씬 오래된 버전의 pulseaudio에서 나왔습니다. 이제 올바른 이름의 싱크를 사용할 수 있습니다.
Takkat

6

펄스 오디오는 USB 장치가 펄스가 시작될 때 존재하지 않기 때문에 USB 장치를 기본값으로 설정하지 않는다는 문제에 동의합니다.

김이 내 솔루션은 시스템에 훅하는 것입니다 않는 USB 장치가 연결되어있을 때 통지를 ... udev에!

BTW,이 지침은 약간 펑키하며 명령 줄에서 작업을 수행하고 udev 파일을 업데이트하고 스크립트를 실행 가능하게 만드는 루트 사용자가된다고 가정합니다.

먼저 물건을 찾아

USB ID

첫 번째 단계는 웹캠을 연결하고 다음을 입력하여 마술 공급 업체 및 제품 번호를 찾는 것입니다

lsusb

Microsoft Lifecam을 사용하고 있으며 다음과 같이 표시됩니다.

Bus 001 Device 013: ID 045e:072d Microsoft Corp.

중요한 부분은 045e : 072d입니다

펄스 오디오 장치

다음으로 웹캠이 연결된 상태에서 pulseaudio 장치 이름을 찾으십시오. 유형

pacmd list-sources

다시, 나는 시작하는 줄을 찾고 name:있는데 Microsoft Lifecam에 대해 뭔가가 있습니다.

name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>

내 pulseaudio 장치 이름은 alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

UDEV 규칙

그런 다음 공급 업체 = 45e 및 제품 = 72d 인 USB 장치를 삽입하면 시작되는 새로운 udev 규칙을 만들었습니다. 규칙을 만들려면 /etc/udev/rules.d/SOMETHING 이라고하는 새 파일 .rules(내 파일이라고 함 /etc/udev/rules.d/95-webcam-mic.rules)을 작성하십시오.

이 줄을 파일에 넣으십시오.

SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic"

바꾸기하는 것을 잊지 ATTR {idVendor}ATTR {idProduct}를 웹캠에 대한 값.

이 규칙은 USB 장치를 입력 용으로 설정하는 스크립트를 실행하는 것입니다 RUN+="/usr/local/bin/webcam-mic".

마지막으로 웹캠을 입력으로 설정하십시오.

빠른 개요 시간. 웹캠을 연결할 때마다 명령을 실행하고 싶습니다

pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

그러나 명령은 (데스크톱을 실행하는 사용자)로 실행해야하지만 udev는 루트 사용자로 실행되므로 udev가 내 명령을 실행할 때 내 사용자로 변경 한 다음 명령을 실행해야합니다.

두 가지 옵션이 있습니다.

  1. 빠르고 더러운 . udev 규칙을 실행 su james -c pacmd set-default-source... 하면 이것이 잘못되었습니다. 명령 입력을 마칠 수도 없습니다. 웹캠을 변경하면 어떻게 되나요? 다른 사용자를 위해 이것을 설치하면 어떻게됩니까?

  2. 약간 깨끗 합니다. pulseaudio 장치 이름과 사용자 이름이 포함 된 기본 파일을 읽는 스크립트를 실행하십시오. 파일을 원한다면 GitHub에 있습니다. 먼저 스크립트 /usr/local/bin/webcam-mic. 기본 파일 /etc/default/webcam-mic은 요지의 주석에 따라 2 개의 쉘 변수를 정의하기 만하면됩니다. 스크립트를 넣고 /usr/local/bin/실행 가능하게 만드십시오. 그런 다음 기본 파일을 넣고 /etc/defaults/사용자 이름과 이전의 펄스 오디오 장치를 사용하도록 편집하십시오.

행운을 빕니다!


이 스크립트를 다시 업로드 할 수있는 가능성이 있습니다. 그들은 pastebin에서 사라진 것처럼 보입니까?
ej159

스크립트를 GitHub의 요지에 넣고 답변을 업데이트했습니다.
James Mitchell

2

Takkat의 솔루션이 나를 위해 작동하지 않았습니다. 여기에 여전히 문제가있는 사람을위한 내 솔루션이 있습니다.

Takkat의 솔루션에는 두 가지 문제가있었습니다. 첫째, 마이크로 전환하기 전에 시작 후 지연이 필요하다는 것을 깨달았습니다 (아래 솔루션에서 'sleep'명령을 사용합니다). 또한 'set-default-source'명령이 USB 마이크를 켜기 위해 작동했지만 Skype는이를 인식하지 못하고 내부 마이크를 계속 사용했습니다.

이것이 작동하려면 먼저 pavucontrol을 설치하는 것이 좋습니다. pavucontrol에서 '구성'탭을 열고 아래 명령으로 어떤 일이 발생하는지 확인하여 의도 한대로 작동하는지 확인하십시오.

그런 다음 터미널에서 다음을 입력하십시오.

pacmd

거기에서 다음을 입력하십시오.

list-cards

출력에서 원하는 USB 오디오의 색인 번호를 찾으십시오 (제 경우에는 '1'). 그런 다음 기본 카드와 USB 카드 모두에 대한 '프로필'아래에 나열된 줄을 살펴보십시오. 이들은 pavucontrol에 나열된 것과 동일해야하며 'ouput : input + output', 'off'또는 'input : analog-mono'와 같은 것일 수 있습니다. 여전히 pacmd 명령 행에서 명령 set-card-profile <index number> <profile name>이 변경되어야합니다. pavucontrol의 설정. 여기서하고 싶은 것은 내부 오디오를 이중에서 출력으로, USB를 입력으로 전환하는 것입니다.

적절한 프로파일을 찾으면 시작 직후 몇 가지 설정을 변경하는 시작 명령을 만들고 싶습니다. 시작 명령을 만들려면 대시를 열고 '시작 응용 프로그램'을 검색 한 다음 '추가'를 클릭 한 다음 원하는 이름과 아래에 해당 명령을 입력하십시오.

시행 착오 후에 내 시작 명령은 다음과 같이 보입니다.

bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono"

설명 : 'sleep'명령이 필요하다는 것을 알았습니다. 즉, 명령이 일시 중지 후 실행되고 30 초로 설정되었음을 의미합니다 (이것이 더 적을 수 있다고 생각합니다). 다음 명령 ( '&&'뒤)은 기본 (내부) 카드 프로파일을 입력 + 출력 (기본값은 이중)에서 출력만으로 전환하는 것입니다. 다음 명령은 USB 사운드 카드 (필자의 경우 숫자는 '1')를 끄는 것입니다. 마지막 명령은 동일한 카드가 'input : analog-mono'모드에서 다시 켜는 것입니다.

작동하는 설정을 찾으려면 이러한 설정을 가지고 놀아야 할 수도 있습니다.

이제 시작하면 30 초 후에 USB 마이크를 사용할 수 있으며 Skype는 올바른 마이크를 사용합니다.


0

이것을 시도하고 상단 패널에서 스피커 아이콘을 클릭하십시오. 클릭 환경 설정. 거기에서 마이크의 기본 입력 옵션을 선택하고 하드웨어 구성을 변경하여 정상적으로 작동하도록 할 수 있습니다.


1
도와 주셔서 감사합니다.하지만 제가 지금하고있는 일입니다. 그러나 이것을 기본 설정으로 만드는 방법은 없습니다. 때때로 설정이 변경되었으므로 다시해야합니다.
Gizmoatwork
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.