2016-12-11 1 views
7

Ich versuche, eine Text-zu-Sprache-Anwendung für die Freigabe des Codes mit anderen Entwicklern zu docken, aber das Problem, das ich gerade habe, ist der Docker-Container kann die Soundkarte auf meinem Host nicht finden Maschine.So spielen Sie Sound in einem Andock-Container

Wenn ich versuche, eine WAV-Datei in meinem Docker Container

[email protected]:/# aplay Alesis-Fusion-Acoustic-Bass-C2.wav 
ALSA lib confmisc.c:768:(parse_card) cannot find card '0' 
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory 
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings 
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory 
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name 
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory 
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory 
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default 
aplay: main:722: audio open error: No such file or directory 

ich zu spielen vermuten, dass das Hauptproblem ist Docker Container ist die Soundkarte auf meinem Gastgeber nicht mehr erreichen.

Bisher habe ich

  1. I alsa-utils installiert und die meisten der ALSA Abhängigkeiten innerhalb meiner Docker-Container.
  2. --group-add audio hinzugefügt, während die Behälter laufen durch docker run --group-add audio -t -i self/debian /bin/bash Angabe

Ich bin nicht sicher, ob dies mit Docker sogar möglich ist (ich bin mir nicht ganz sicher, wie Hardware-Ressourcen wie Soundkarten werden mit Containern gemeinsam) . Ich verwende einen Debian-Container auf einem Mac OS Yosemite-Host.

+0

Würde http://stackoverflow.com/q/40136606/6309 helfen? – VonC

Antwort

8

Es ist auf jeden Fall möglich, montieren Sie müssen/dev/snd, wie Jess Frazelle startet einen Spotify Behälter, aus

https://blog.jessfraz.com/post/docker-containers-on-the-desktop/

werden Sie feststellen,

docker run -it \ -v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket -e DISPLAY=unix$DISPLAY \ # pass the display --device /dev/snd \ # sound --name spotify \ jess/spotify

oder für Chrome, am Ende

docker run -it \ --net host \ # may as well YOLO --cpuset-cpus 0 \ # control the cpu --memory 512mb \ # max memory it can use -v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket -e DISPLAY=unix$DISPLAY \ # pass the display -v $HOME/Downloads:/root/Downloads \ # optional, but nice -v $HOME/.config/google-chrome/:/data \ # if you want to save state --device /dev/snd \ # so we have sound --name chrome \ jess/chrome

Verwandte Themen