PulseAudio 가상 사운드 장치의 재발견을 어떻게 강제 할 수 있습니까?


8

네트워크 사운드 장치 (멀티 캐스트 / RTP 아님)의 PulseAudio 기능을 사용하여 집에서 HTPC에 연결된 오디오 장비에서 넷북의 사운드를 재생하고 있습니다. 그러면 물리적 내장 장치 대신 사용할 수있는 가상 사운드 장치가 만들어집니다. 대부분의 경우 이것이 잘 작동합니다. 그러나 때로는 가상 사운드 장치가 나타나지 않습니다. 네트워크 연결을 끊었다가 다시 연결하면 가끔 도움이되지만 항상 그렇지는 않으며 기존 TCP 연결에 좋지 않을 수 있습니다.

기본적으로 제 질문은 그래서 "당신이 이봐, 그냥 다시 볼 펄스 오디오를 알 수있는 방법이 있나요 정말 . 네트워크 사운드 장치를 찾을 수 없습니다"는?


편집 : 언로드 및 다시로드 module-zeroconf-discover와 함께하는 것이 pacmd도움이 중 하나를하지 않으며이되지 않습니다 표시 하기 때문에 그 자체 당를 Avahi 문제로 avahi-browse -t --all | grep PulseAudio장치가 pavucontrol 나에 나열되지 않은 경우에도, 오른쪽 찾고 물건의 쇼를 많이 pacmd list-sinks.


편집 2 : 나는 두 상자 모두에 우분투 12.04를 사용하고 있습니다.


유용한 의견이나 답변을 제공 할 정보가없는 경우 알려주십시오.
Christian

답변:


7
  1. "싱크"PC (스피커에서 사운드를 재생하려는 경우)에서 터미널로 이동하여 다음 명령을 실행하여 PulseAudio 명령 셸을 엽니 다.

    $ pacmd

    다음과 같은 환영 메시지와 함께 Python과 유사한 쉘이 표시됩니다.

    Welcome to PulseAudio! Use "help" for usage information. >>>
  2. PulseAudio 쉘의 명령으로 PC에서 사운드를 재생할 수있는 장치를 나열하십시오.
    >>> list-sinks
    이제 모든 사운드 싱크에 대한 자세한 목록이 표시됩니다.
  3. 선택한 싱크대의 전체 이름 을 적어 두십시오 . 사운드 카드의 속성으로 나타납니다. 예를 들어 내 경우에는 다음과 같습니다.

    1 sink(s) available. index: 0 name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
    ...

관심있는 문자열은 "alsa_output.pci-0000_00_1b.0.analog-stereo"입니다.

  1. 이제 소스 PC (오디오 멀티미디어 스트림의 출처)로 가서 터미널을 열고 다음 명령을 실행하십시오.

    $ pactl load-module module-tunnel-sink "server=192.168.1.105 sink=alsa_output.pci-0000_00_1b.0.analog-stereo sink_name=home_theater"

    192.168.1.105는 싱크 PC의 IP 주소 "alsa_output.pci-0000_00_1b.0.analog-stereo "는 싱크 터미널에서 복사 한 문자열이며"home_theater "는 컴퓨터에서이 가상 사운드 출력 장치를 호출하기에 멋진 이름입니다.

  2. 마지막 으로이 가상 사운드 장치를 선택하십시오 :
    $ pacmd set-default-sink home_theater

    Wallah !!

나를 위해 일했습니다-정확한 싱크를 지정할 필요없이 새로운 터널 싱크 모듈과 싱크의 호스트 IP 주소로도 작동합니다 (스테레오에 연결된이 라즈베리 파이에서 하나만 사용하므로 필요하지 않습니다) : 'pactl 로드 모듈 모듈 터널 싱크 새 서버 = [2001 : 470 : ca90 : 4 : ba27 : ebff : fee2 : ada9] '-감사합니다!
Jean-Marc Liotier

4

avahi가 다시 시작하기 전에 장치를 보더라도 간단한 방법 sudo service avahi-daemon restartavahi-browse있습니다. 올바른 방향으로 나를 가리켜 준 Takkat에게 감사합니다.


3

이 답변은 테스트되지 않았으므로 작동하지 않을 수 있지만 올바른 방향으로 안내 할 수 있습니다.

때때로 PulseAudio 서버에 연결할 수없는 Avahi 서비스에서 해결되지 않은 문제를 확인할 수 있습니다 . 네트워크 나 펄스 오디오 서버를 다시 시작하면 재 연결에 성공할 수 있지만 아쉽게도 항상 작동하지는 않습니다.

이 문제를 극복하기 위해 Avahi 이름 확인을 사용하지 않고 고유 TCP 프로토콜을 사용하여 네트워크 오디오 스트림을 설정하여 IP로 직접 스트리밍 할 수 있습니다.

이를 위해 수신기 측에 모듈 터널 싱크를로드하여 원격 싱크를 터널링 할 수 있습니다 . 발신자에서는 module-native-protocol-tcp 를로드하여 기본 TCP 프로토콜을 활성화해야 합니다 .

용어 및 PULSE_SERVER변수 정의 방법에 대해서는이 질문을 참조하십시오 .

부팅시 PulseAudio 기본 싱크를 원격 서버로 자동 설정하는 방법-Ubuntu 9.04

우분투 9.04에는 다소 오래된 질문이지만 그 이후로 저의 전문 용어와 절차는 크게 바뀌지 않았습니다.

네트워크 연결 에서 PulseAudio Wiki를 따르십시오 .


하나의 링크에 감사드립니다. 거기에 대한 해결책은 실제로 내 경우에도 작동 합니다. 다시 시작하기 전에 장치를 볼 sudo service avahi-daemon restart수 있기 때문에 avahi-browse다시 시작이 콜백을 다시 호출하여 필요한 모든 것을 트리거한다고 생각합니다.
Christian

@Christian : 도움이되었습니다. 나는 한동안 아바 히를 포기했다.
Takkat

그래도 당신의 제안을 이해했는지 잘 모르겠습니다. DNS 이름 확인을 사용할 수 있습니까, 아니면 IP를 알아야합니까? HTPC의 경우 이것이 좋은 일이라고 말할 수도 있지만 고정 IP를 사용하지는 않겠습니다.
Christian

1
네, 왜 그런지 이해할 수 있습니다. 나는 방금 내 자신의 답변을 썼다. 왜냐하면이 질문에 걸려 넘어지는 사람들에게는 동일한 문제가 있기 때문에 가장 간단한 해결책처럼 보입니다.
Christian

1

시도 pulseaudio -k하면 펄스 오디오 서비스가 종료됩니다 (자동으로 다시 시작되는 것 같습니다). 이것은 이전에 나를 위해 일을 가져 왔습니다.

때때로 도움이되는 또 다른 방법은 Pulseaudio Preferences(일명 paprefs) 에서 상자를 선택 해제 한 다음 다시 선택하는 것입니다 . 체크 박스는 Make discoverable PulseAudio network sound devices available locally에서 Network Access, 그리고 Enable network access to local sound devices에서 Network Server. 분명히 이것은 아마도 사용중인 것에 만 효과가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.