Penjelasan sederhana
Jika mpd sedang diputar dan suara mencoba diputar melalui aplikasi lain, x , suara dari x tidak akan dihasilkan.
Jika suara dari aplikasi lain, x , diputar dan mpd kemudian mencoba untuk memutar, tidak ada suara yang akan dihasilkan dari mpd sementara suara dari x terus diputar.
Detail
Saya pertama kali memperhatikan masalah ini dengan Flash, dan ini terus menjadi skenario yang paling umum. Saya memposting pertanyaan tentang ini sebelum menyadari bahwa itu tidak sepenuhnya terkait dengan Flash, tetapi ada hubungannya dengan mpd.
Frustrasi terbesar saya berasal dari mencoba membuat mpd bekerja lagi, karena saya tidak bisa menemukan metode apa pun. Kadang-kadang pulseaudio -k
tampaknya membantu, di lain waktu sudo /etc/init.d/mpd restart
, orang lain membunuh Chromium (karena Flash) SIGTERM
. Sebagian besar waktu itu kombinasi dari yang di atas.
Saya pikir ini mungkin karena saya menjalankan mpd sebagai pengguna lain dan menggunakan pulseaudio. Itu tidak dijalankan sebagai root atau pengguna saat ini. Juga, mpd dikompilasi dengan dukungan pulsa.
Saya sudah mencoba banyak hal, namun jujur saya tidak bisa melafalkan apa, karena sudah beberapa waktu sejak itu. Saya lebih suka tidak mencari-cari tanpa arah, tetapi saya akan sangat senang memperbaiki masalah ini untuk selamanya.
mpd.conf
Disederhanakan dengan menghapus komentar / baris kosong.
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"
Pertanyaan
Demi menjaga pertanyaan ini: apakah ada yang tahu apa yang menyebabkan ini, atau bagaimana cara memperbaikinya tanpa menjalankan mpd sebagai pengguna saat ini?
sumber
Jawaban:
Saya memiliki masalah ini ketika pertama kali mulai menggunakan mpd, tetapi beberapa waktu yang lalu, jadi saya tidak ingat persis apa yang saya lakukan untuk memperbaikinya!
Apakah Anda memiliki preferensi PulseAudio diinstal? Saya menemukan tip ini di forum:
sudo apt-get install paprefs
Kemudian buka PulseAudio preferensi dari menu: System-> Preferences-> Preferensi PulseAudio Klik tab Server Jaringan, kemudian centang kotak "Aktifkan akses jaringan ke perangkat suara lokal", dan akhirnya centang kotak "Jangan memerlukan otentikasi". Setelah itu, mulai ulang mpd:
sudo /etc/init.d/mpd restart
Namun ... Saya baru menyadari bahwa mpd berfungsi dengan baik untuk saya dan saya tidak mengaktifkan "akses jaringan ke perangkat suara lokal".
Saya pikir Anda mungkin benar perlu menjalankan mpd sebagai pengguna saat ini, yang saya lakukan. (Aku tidak tahu mengapa ini terjadi!)
Panduan sederhana untuk menyiapkan mpd agar dijalankan sebagai pengguna dapat ditemukan di sini: http://gmpc.wikia.com/wiki/MPD_INSTALL_USER_SERVICE_UBUNTU
Singkatnya, karena Anda sudah menginstal mpd:
1.) Hentikan:
sudo update-rc.d mpd disable
2.) Salin mpdconf Anda ke direktori home Anda (sebagai .mpdconf), dan ubah entri berikut ke tempat-tempat di mana pengguna Anda dapat mengakses dan menulis ke:
Halaman yang saya ambil ini menyarankan hanya membuat folder .mpd di direktori home Anda untuk hal ini, simpan untuk direktori musik Anda yang sebenarnya.
3.) Mengomentari baris pengguna di .mpdconf:
#user "mpd"
4.) Sekarang Anda dapat menjalankan mpd dan memperbarui database.
5.) Untuk membuat mpd memulai secara otomatis sebagai pengguna saat masuk, buka Aplikasi Startup dan tambahkan entri untuk mpd, kemudian buat file autostart di ~ / .config / autostart /.
Mungkin ada kelemahan untuk menjalankan sebagai pengguna, jadi mungkin ini tidak sesuai dengan kebutuhan Anda.
sumber
Tidak yakin apakah itu masalah yang sama persis, tetapi dengan pengaturan mpd default-ish lama saya, saya pikir mpd sedang mencoba untuk memulai audio pulsa sendiri sebagai pengguna yang berbeda (pengguna mpd). Saya menemukan pengaturan output pulsa saya di /etc/mpd.conf untuk menggunakan soket untuk menyambung lebih mudah untuk menghindari masalah seperti ini.
Maka Anda mungkin ingin memeriksa paprefs bahwa Anda menerima koneksi lokal
sumber
.pulse-cookie
agar/var/lib/mpd
ini berfungsi, atau pulseaudio gagalfailed to connect: Access denied
, meskipun saya tidak yakin apakah itu cara yang benar.Ketika dijalankan sebagai penggunanya sendiri sesuai instruksi wiki, mpd tidak akan dapat mengirim suara ke server pulseaudio pengguna lain. Daripada mengatur pulseaudio sebagai daemon sistem, praktik yang sangat tidak disarankan oleh hulu, Anda dapat mengkonfigurasi mpd untuk menggunakan modul tcp pulseaudio untuk mengirim suara ke localhost:
Pertama, batalkan komentar pada modul tcp di /etc/pulse/default.pa atau $ XDG_CONFIG_HOME / pulse / default.pa (biasanya ~ / .config / pulse / default.pa) dan atur 127.0.0.1 sebagai alamat IP yang diizinkan; direktori home diutamakan:
Kisaran IP tambahan dalam notasi cidr dapat ditambahkan menggunakan; sebagai pemisah. Setelah ini selesai, mulai ulang pulseaudio:
Selanjutnya, edit /etc/mpd.conf dan tambahkan output pulsa baru yang menunjuk ke 127.0.0.1 sebagai server "remote":
dari https://wiki.archlinux.org/index.php/Music_Player_Daemon/Tips_and_tricks
sumber