2016-12-11 17 views
7

Tôi đang cố gắng cập nhật ứng dụng văn bản thành giọng nói để chia sẻ mã với các nhà phát triển khác, tuy nhiên vấn đề tôi đang gặp bây giờ là vùng chứa docker không thể tìm thấy card âm thanh trên máy chủ của tôi máy móc.Cách phát âm thanh trong ngăn chứa docker

Khi tôi cố gắng để chơi một file wav vào bình chứa Docker tôi

[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 

Tôi đoán rằng vấn đề chính là thùng chứa Docker là không thể đạt được card âm thanh trên máy chủ của tôi.

Cho đến nay tôi có

  1. Tôi đã cài đặt alsa-utils và hầu hết các phụ thuộc alsa trong container Docker tôi.
  2. Thêm --group-add audio khi chạy chứa bằng cách xác định docker run --group-add audio -t -i self/debian /bin/bash

Tôi không chắc chắn nếu điều này thậm chí còn có thể với Docker (Tôi không chắc chắn chính xác tài nguyên phần cứng như thế nào chẳng hạn như card âm thanh được chia sẻ với container) . Tôi đang sử dụng một thùng chứa debian trên một máy chủ Mac OS Yosemite.

+0

Xin trợ giúp http://stackoverflow.com/q/40136606/6309? – VonC

Trả lời

8

Người ta chắc chắn có thể, bạn cần phải mount/dev/snd, xem làm thế nào Jess Frazelle ra mắt một container Spotify, từ

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

bạn sẽ thấy

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

hoặc cho Chrome, ở cuối

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

Các vấn đề liên quan