mpdが他のアプリケーションと競合しています—パルスを制御していますか?


8

簡単な説明

MPDは、別のアプリケーションで再生しようとする試みを演奏し、音されている場合は、X、からの音xは出力されません。

他のアプリケーションからの音が、場合xは、その後、再生する試みを演奏し、MPDさからの音ながら、何の音はMPDから出力されませんxはプレーし続けています。

細部

私は最初にFlashでこの問題に気づきましたが、これは引き続き最も一般的なシナリオです。フラッシュに厳密に関連しているのではなく、mpdに関係していることに気づく前に、これに関する質問投稿しました。

私の最大のフラストレーションは、mpdを再び動作させようとすることです。時々、他の人が(フラッシュのために)Chromiumを殺すのpulseaudio -kに役立つようです。ほとんどの場合、それは上記の組み合わせです。sudo /etc/init.d/mpd restartSIGTERM

これは、mpdを別のユーザーとして実行し、pulseaudioを使用しているためと考えられます。rootまたは現在のユーザーとしては実行されません。また、mpdはパルスサポート付きでコンパイルされます。

いろいろなことを試してきましたが、正直なところ、久しぶりに何も書けませんでした。方向性がわからないのではなく、この問題を一度でも解決できたら本当に嬉しいです。

mpd.conf

コメント/空白行を削除することで簡略化。

music_directory     "/var/lib/mpd/music"
playlist_directory      "/var/lib/mpd/playlists"
db_file         "/var/lib/mpd/tag_cache"
log_file            "/var/log/mpd/mpd.log"
pid_file            "/var/run/mpd/pid"
state_file          "/var/lib/mpd/state"

user                "mpd"
bind_to_address     "wilson"

input {
        plugin "curl"
}

audio_output {
    type        "pulse"
    name        "My Pulse Output"

}

filesystem_charset      "UTF-8"
id3v1_encoding          "UTF-8"

質問

これを維持するために、これを引き起こしている原因、または現在のユーザーとしてmpdを実行せずに修正する方法を誰かが知っていますか?


1
mpdで何かを再生しているとき(およびそのサウンドが機能しているとき)、サウンドプロパティウィンドウをロードし、[アプリケーション]タブをクリックすると、mpdがPAを使用しているかどうかがわかります。
Oli

Alibara Iduasの指示に従って、現在のユーザーとしてmpdを実行すると、問題が回避されます。しかし、なぜこれがユーザー「mpd」として正しく実行されないのか、まだ興味があります。
Jamie Schembri、2011年

回答:


5

最初にmpdを使い始めたときにこの問題がありましたが、かなり前のことなので、修正するために何をしたのか正確に思い出せません!

PulseAudio設定がインストールされていますか?私はフォーラムでこのヒントを見つけました: sudo apt-get install paprefs

次に、メニューからPulseAudio設定を開きます。システム->設定-> PulseAudio設定[ネットワークサーバー]タブをクリックし、[ローカルサウンドデバイスへのネットワークアクセスを有効にする]チェックボックスをオンにし、最後に[認証を要求しない]チェックボックスをオンにします。その後、mpdを再起動します。sudo /etc/init.d/mpd restart

しかし...私はmpdがうまく機能し、「ローカルサウンドデバイスへのネットワークアクセス」が有効になっていないことに気づきました。

私は、mpdを現在のユーザーとして実行する必要があるのは正しいと思うかもしれません。(これがなぜなのか、私には手がかりがありません!)

ユーザーとして実行されるようにmpdを設定するための簡単なガイドは、http://gmpc.wikia.com/wiki/MPD_INSTALL_USER_SERVICE_UBUNTUにあります。

要約すると、すでにmpdがインストールされているためです。

1.)やめる: sudo update-rc.d mpd disable

2.)mpdconfをホームディレクトリ(.mpdconfとして)にコピーし、次のエントリをユーザーがアクセスおよび書き込みできる場所に変更します。

music_directory
playlist_directory
db_file
log_file
error_file
pid_file
state_file 

これを取得しているページでは、ホームディレクトリに.mpdフォルダーを作成し、実際の音楽ディレクトリ用に保存することをお勧めしています。

3.).mpdconfのユーザー行をコメント化します。 #user "mpd"

4.)これで、mpdを実行してデータベースを更新できます。

5.)ログイン時にユーザーとしてmpdを自動的に起動するには、スタートアップアプリケーションに移動してmpdのエントリを追加し、〜/ .config / autostart /に自動起動ファイルを作成します。

[Desktop Entry]
Type=Application
Exec=mpd
Hidden=false
NoDisplay=false
Terminal=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Music Player Daemon
Name=Music Player Daemon
Comment[en_US]=plays the music
Comment=plays the music

ユーザーとして実行することにはおそらくマイナス面があるので、これはおそらくあなたのニーズに合わないでしょう。


これを読む前に、pulseaudioとmpdを削除しました。インストール後、Pulseaudioはほとんど機能しましたが、何らかの理由でmpdでサウンドを元に戻すことができませんでした。とにかく、私はガイドに従ってしまい、現在はmpdを現在のユーザーとして実行していますが、問題なく動作します。私はユーザー "mpd"として実行することを望んでいましたが、これは回答よりも回避策の方が多いため、回答として受け入れません。mpdがユーザーの「mpd」として希望どおりに実行されない理由にまだ興味があります(おそらく、pulseaudioはrootで実行する必要がありますか?)。とにかく、私はあなたが理解し、あなたが私の感謝を持っていることを願っています!
ジェイミーシェムブリ

1
問題ありません。少なくとも今は動作しています。他に考えられる唯一のことは、ユーザーmpdとして実行するときに、「mpd」がパルスアクセス(およびおそらくパルス)グループのグループメンバーとしてリストされていることを確認することです。しかし、それが問題となるのは、この奇妙な衝突ではなく、まったく音が聞こえなかった場合だけだと思います。フム、また、このArchlinuxウィキページのセクション"MPD&のAlsa"と"MPD&PulseAudioは"を参照してください:wiki.archlinux.org/index.php/Music_Player_Daemon
Aibara

ありがとう、アイバラ。以前は、mpdがパルスの正しいグループにあることを確認していたため、この場合は問題になりませんでした。あなたが投稿したリンクは、特にそれが言及された「MPD&Alsa」セクションで私の正確な問題を説明しているという点で、非常に興味深いです!これはPulseに適応できますか?
ジェイミーシェムブリ

同じ問題がAlsaで簡単に解決できるのは奇妙ですが、AlsaソリューションをPulseに適用できるかどうかは本当にわかりません。Pulseでこの問題が発生している人について私が読んだことはすべて、ユーザーとしてMPDを実行することになるか、PulseAudioの設定が変更されます。ごめんなさい!
相原

この問題は、MPDに分離するまで私にもいくつかの問題を引き起こしました。ちなみに、パプレッフに関する最初の解決策は私にはうまくいきませんでしたが、2番目の解決策はうまくいきました。
ローレンス

2

それがまったく同じ問題かどうかはわかりませんが、私の古いデフォルトっぽいmpdセットアップでは、mpdは別のユーザー(mpdユーザー)として独自のパルスオーディオを開始しようとしていたと思います。/etc/mpd.confのパルス出力を、ソケットを使用して接続するように設定する方が、この種の問題を回避するのに簡単です。

audio_output {
        type            "pulse"
        name            "My Pulse Output"
        server          "localhost"
}

次に、ローカル接続を受け入れることを確認することをお勧めします


Gentooでは、これを機能.pulse-cookie/var/lib/mpdせるためにユーザーをにコピーする必要があります。または、pulseaudioがで失敗しましたfailed to connect: Access denied
2012

0

wikiの指示に従って独自のユーザーとして実行すると、mpdは別のユーザーのPulseAudioサーバーにサウンドを送信できません。システム全体のデーモンとしてpulseaudioを設定するのではなく、上流では強く推奨されていない代わりに、pulsdaudioのtcpモジュールを使用してサウンドをローカルホストに送信するようにmpdを構成できます。

最初に、/ etc / pulse / default.paまたは$ XDG_CONFIG_HOME / pulse / default.pa(通常〜/ .config / pulse / default.pa)のtcpモジュールのコメントを外し、許可されたIPアドレスとして127.0.0.1を設定します。ホームディレクトリが優先されます。

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
#load-module module-zeroconf-publish

Cidr表記のIP範囲は、を使用して追加できます。セパレータとして。これが完了したら、pulseaudioを再起動します。

$ pulseaudio --kill
$ pulseaudio --start -or- start-pulseaudio-x11/kde

次に、/ etc / mpd.confを編集して、「リモート」サーバーとして127.0.0.1を指す新しいパルス出力を追加します。

audio_output {
       type     "pulse"
       name     "Local Music Player Daemon"
       server       "127.0.0.1"
}

https://wiki.archlinux.org/index.php/Music_Player_Daemon/Tips_and_tricksから

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.