2016-10-19 21 views

cevap

11

Docker-for-VM için herhangi bir ses geçiş aygıtı yok, bu nedenle bu açıdan yararlanabileceğiniz bir şey yok. Tersine, bir sanal kutu veya vmware fusion VM geçişli ses yapma yeteneğine sahiptir.

Ben pulseaudio yüklenmiş ve şu komutla OSX üzerinde çalışan almak başardı:

brew install pulseaudio 

Hoparlörlerimle çıkan sesler duymuşlar bu aşağıdaki çalıştırarak çalıştı doğrulamak başardı:

paplay cockatiel.wav 

Bir sonraki adımım paplay kopyasını içeren bir görüntü bulmaktır. Ben sunucu bir sunucu olması amaçlanmıştır gibi görünen jess/pulseaudio bulundu, ancak ben de istemci olarak kullanabilmem gerekir. https://wiki.archlinux.org/index.php/PulseAudio/Examples#PulseAudio_over_network

ben aşağıdakileri yaparak bu duruma adapte edebildi:

Ben pulseaudio ağ sesi kurma tartışırken Arch Linux Wiki aşağıdaki kılavuz bulundu. Benim mac /usr/local/Cellar/pulseaudio/9.0/etc/pulse/default.pa düzenlenebilir ve aşağıdaki iki satırı uncommented:

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

benim değişiklikler hala çalıştı emin olmak benim yağmurluk paplay cockatiel.wav reran. Pulseaudio daemon talep üzerine başlıyor gibi görünüyor ve yazım hatası yazdığımda ekrana yazdırılmak üzere şikayetlerini tekrar paplay'a iletiyor. Bu default.pa'daki değişikliklerle ilgili sesim hala var, bu yüzden değişikliklerin hiçbir şeyi kırmadığından memnunum.

Sonraki, böyle bir kapta pulseaudio müşteri koştum: Bu bir hacme olarak benim yerel ana dizine sahip bir kabı çalıştırılır neyi

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 

. Bu iki amaca hizmet eder. Birincisi, cockatiel.wav'mn $HOME'un içinde bulunduğu gerçeğidir. İkincisi, hem istemci hem de sunucunun aynı ~/.config/pulse/cookie dosyasının bir kopyasına sahip olması gerektiğidir (her bir archlinux wiki kılavuzu için).

PULSE_SERVER ortam değişkeni, OSX sunucumun en0 IP adresidir, bu yüzden paplay neyin bağlanacağını bilir.

HOME ortam değişkeni gereklidir, bu yüzden paplay aynı ~/.config/pulse/cookie dosyasını bulabilir.

Pulseaudio aracılığıyla docker-for-mac'mda çalışan bir kapsayıcıdan ses çalmayı başardım.

~/.config/pulse/cookie dosyasının doğru yerde görünmesini sağladığı sürece, ses çalabilmeniz gerekir. Bunu gerçekleştirmek için bir ana bilgisayar birimi kullanmanız gerekmez; ayrıca bir 'docker cp', hatta COPY görüntüyü bir görüntüde yapabilirsiniz.

+2

Paplay piano2.wav $ paplay piano2.wav çalıştırırken aşağıdaki hatayı alıyorum W: [] caps.c: Normalde tüm ekstra özellikler şimdi düştü, ancak bu imkansız çünkü PulseAudio yetenek desteği olmadan yapıldı. Bağlantı hatası: Bağlantı reddedildi pa_context_connect() başarısız oldu: Bağlantı reddedildi –

+0

@valentin_nasta Soruyu Mac'te PulseAudio yükleyerek düzelttiniz mi? –

+1

Geçerli PulseAudio 10.0 ile, "pulseaudio --daemonize = false -v" komutunu çalıştırıyor görünmüyor, "W: [] socket-util.c: IP_TOS başarısız oldu: Geçersiz değişken" iki modül-eklendikten sonra protokol-tcp/ modül-yerel protokol-tcp satırları. – jamshid