2016-10-19 22 views

答えて

11

Docker-for-Mac VMにはサウンドパススルーデバイスがないため、その角度から利用できるものはありません。対照的に、仮想ボックスまたはVM웨어の融合VMには、パススルーオーディオを実行する機能があります。

私はPulseAudioはインストールされ得ることができたし、次のコマンドを使用してOSXに取り組ん:

:私は私のスピーカーから出てくる音を聞いて、以下を実行して働いていたこれを確認することができました

brew install pulseaudio 

paplay cockatiel.wav 

私の次のステップは、paplayのコピーを持つ画像を見つけることです。私はjess/pulseaudioを見つけました。これはpulseaudio サーバですが、クライアントとしても使用できるはずです。

私はPulseAudioはネットワークの音を設定する議論Archlinux Wikiに次のガイドを見つけました:https://wiki.archlinux.org/index.php/PulseAudio/Examples#PulseAudio_over_network

私は次のことを行うことによって、このような状況に適合させることができました。私は私のMac上で​​を編集して、次の2行コメント解除:

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

私は私の変更はまだ働いていたことを確認するために私のMacでpaplay cockatiel.wavをreranを。 pulseaudioデーモンは要求に応じて開始されるように見え、入力ミスをした場合、画面に印刷されるpaplayにその苦情を送り返します。私はまだdefault.paへのそれらの変更で音を持っているので、私の変更が何かを壊していないことは満足しています。

次に、私はこのようなコンテナ内のpulseaudioクライアントを実行しました:

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 

これは何のボリュームとしての私のローカルのホームディレクトリを持つコンテナを実行しています。これは2つの目的を果たす。最初は、私のcockatiel.wavが$HOMEの中に入っているという事実です。 2番目の理由は、クライアントとサーバーの両方に同じ~/.config/pulse/cookieファイルのコピーが必要なためです(そのarchlinux wikiガイド)。

PULSE_SERVER環境変数は、OSXホストのen0 IPアドレスです。したがって、paplayは接続先を認識しています。

環境変数は、同じ~/.config/pulse/cookieファイルを見つけるために必要です。

私のdocker-for-macで動作しているコンテナから、pulseaudio経由でサウンドを再生することができました。

~/.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"を実行していないようですが、2つのmodule-esound- protocol-tcp/ module-native-protocol-tcp行。 – jamshid

関連する問題