2016-10-19 3 views

답변

11

Docker-for-Mac VM에는 사운드 통과 장치가 없으므로 그 각도에서 활용할 수있는 것이 없습니다. 반대로, 가상 박스 또는 VM웨어 퓨전 VM은 패스 스루 오디오 기능을 갖추고 있습니다.

내가 펄스 오디오 설치하고 다음 명령을 OSX 작업을 얻을 수 있었다 :

brew install pulseaudio 

내 스피커에서 나오는 소리를 듣고, 이것은 다음을 실행하여 일을 확인 할 수 있었다 :

paplay cockatiel.wav 

내 다음 단계는 paplay 사본이있는 이미지를 찾는 것입니다. 나는 펄스 오디오 서버 인 것으로 보이는 것으로 보이는 jess/pulseaudio을 찾았지만 클라이언트으로 사용할 수 있어야합니다. https://wiki.archlinux.org/index.php/PulseAudio/Examples#PulseAudio_over_network

나는 다음을 수행하여이 상황에 적응 할 수 있었다 :

내가 펄스 오디오 네트워크 사운드를 설정하는 논의 아치 리눅스 위키에서 다음 가이드를 발견했다. 내 Mac에서 /usr/local/Cellar/pulseaudio/9.0/etc/pulse/default.pa을 편집하고 다음 두 줄의 주석 처리를 제거 :

load-module module-esound-protocol-tcp 
load-module module-native-protocol-tcp 

내 변화는 여전히 일을 확인하기 위해 내 Mac에서 paplay cockatiel.wav을 reran을. pulseaudio 데몬은 요청에 따라 시작된 것으로 보이며 오타를 만든 경우 내 화면에 인쇄되도록 paplay으로 불만 사항을 전달합니다. 나는 default.pa에 대한 변경 사항으로 여전히 소리가 나고, 그래서 나는 나의 변화가 아무 것도 깨뜨리지 않았 음을 확신한다.

다음으로,이 같은 용기에 펄스 오디오 클라이언트를 실행 : 이것은 볼륨으로 내 로컬 홈 디렉토리로 컨테이너를 실행하는 일

docker run --rm -v $HOME:$HOME -w $HOME -it \ 
    -e PULSE_SERVER=192.168.10.23 \ 
    -e HOME=$HOME --entrypoint paplay \ 
    jess/pulseaudio $HOME/cockatiel.wav 

합니다. 이것은 두 가지 용도로 사용됩니다. 첫 번째는 내 cockatiel.wav가 $HOME 안에 위치한다는 사실입니다. 두 번째 이유는 클라이언트와 서버 모두 동일한 ~/.config/pulse/cookie 파일 (archlinux 위키 가이드에 따라)의 사본을 가져야하기 때문입니다.

환경 변수는 내 OSX 호스트의 en0 IP 주소이므로 paplay는 연결할 대상을 알고 있습니다.

~/.config/pulse/cookie 파일을 찾을 수 있도록 HOME 환경 변수가 필요합니다.

나는 도커 - 포카 (pulse-audio)를 통해 도커 - 포카 (docker-for-mac)에서 실행되는 컨테이너에서 사운드를 재생할 수 있었다.

~/.config/pulse/cookie 파일이 올바른 위치에 나타나면 사운드를 재생할 수 있어야합니다. 이를 수행하기 위해 호스트 볼륨을 사용할 필요가 없습니다. 이미지에 '도커 cp'또는 COPY도 사용할 수 있습니다.

+2

paplay piano2.wav를 실행할 때 다음 오류가 발생합니다. $ paplay piano2.wav W : [] 대문자.c : 일반적으로 모든 추가 기능이 지금은 삭제되지만, PulseAudio는 기능을 지원하지 않으므로 불가능합니다. 연결 실패 : 연결이 거부되었습니다. pa_context_connect() failed : 연결이 거부되었습니다. –

+0

@valentin_nasta Mac에서 PulseAudio를 설치하면 문제를 해결할 수 있습니까? –

+1

현재 pulseAudio 10.0에서는 "pulseaudio - daemonize = false -v"가 실행되지 않는 것 같아서 두 개의 모듈 -sound-utils를 추가 한 후 "W : [] socket-util.c : IP_TOS failed : Invalid argument" protocol-tcp/ module-native-protocol-tcp 행입니다. – jamshid

관련 문제