Bagaimana membuat Android memutar musik secara andal, tanpa memotong?

10

Ketika saya mencoba memainkan musik di Android 2.3 (menggunakan berbagai pemain, termasuk PowerAmp) di Sony Ericsson Xperia X10, saya mendapatkan suara yang tidak dapat diandalkan. Musik berhenti sebentar, misalnya, ketika:

  • Saya menekan tombol power (terutama berulang kali) ( request_suspend_state: sleep;request_suspend_state: wakeupdalam dmesg)
  • Ketika saya melihat pesan seperti send sigkill to 15497 (ndroid.settings), adj 8, size 6428di dmesg
  • Ketika beberapa program bereaksi terhadap orientasi layar yang berubah.
  • Ketika koneksi wifi terbentuk, ketika saya memaksanya untuk "menghubungkan kembali"
  • Ketika saya pergi ke / dari aplikasi dari layar beranda (AWDLauncher), kecuali ke / dari layar WidgetLocker.
  • Ketika saya mengaktifkan / menonaktifkan Mode Pesawat.
  • Ketika layar mati (yang paling menjengkelkan)

Ketika satu-satunya cara yang sangat stabil untuk memutar musik adalah dengan menggunakan StayAwake untuk memaksa tampilan aktif, matikan Wi-Fi, nyalakan Mode Pesawat dan jangan beralih aplikasi. Memulai babi seperti CPU while true; do true; donetidak memengaruhi pemotongan.

Dan itu bermain kurang lebih baik di Android 2.1.

Proses "mediaserv" (yang menulis ke / dev / msm_pcm_out) memiliki io ​​dan penjadwalan prioritas waktu nyata, tetapi suara tetap berombak. Jika saya mulai bermain dari konsol dengan mplayer -ao pcm:file=/dev/msm_pcm_outmemotong suara kurang (terutama itu tidak terganggu oleh tombol power / memuat banyak proses berat), tetapi masih berperilaku tidak normal ketika layar mati (bahkan ionice -c1 -p4 cat /dev/urandom > /dev/msm_pcm_outberombak)

Ketika saya memulai musik A dengan cara biasa dan musik B menggunakan mplayer ke / dev / msm_pcm_out (membuat mereka bercampur) musik A memotong lebih dari biasanya dan saya biasanya mendengar B ketika A sedang memotong. Ketika saya mematikan layar, kedua A dan B memotong dalam sinkronisasi (menghentikan B menyebabkan pemutaran A relatif lebih lancar dengan cara ini).

Bagaimana cara memainkan musik di Android secara andal di hadapan beban latar belakang? Haruskah saya melaporkan bug di suatu tempat?

Perbarui Menemukan cara memainkan musik. Nyaman, tetapi tanpa memotong :

  1. Mulai WakeLock dalam mode "CPU on, Screen Off, Keyboard off"
  2. Gunakan mplayer untuk memutar musik yang melewati Android:
ionice -c1 -n4  \
  schedtool -R -p 3 -e \
  mplayer -really-quiet \
        -af volume=-26 -quiet \
        -ao pcm:file=/dev/msm_pcm_out,nowaveheader \
    /mnt/sdcard/music/something.ogg
# (created script to start it easily, of course)

Dimainkan tanpa memotong tidak peduli berapa banyak aplikasi yang saya mulai, apa yang dilakukan dengan Wifi, orientasi dan mode pesawat. Bahkan dengan gubernur cpufreq "powersave" (semuanya sangat lambat, tetapi musik dimainkan dengan baik). Jadi perangkat keras memiliki sumber daya yang cukup untuk memainkannya.

Perbarui 2 Sepertinya sedang dilakukan

for i in `pgrep ''`; do schedtool -D $i; done

yaitu "Tetapkan Prioritas menganggur untuk semua proses" membuat musik diputar dengan baik bahkan ketika saya {memulai program, mengunci layar, memutar layar; menghubungkan kembali ke stasiun jaringan seluler lain} dengan mengorbankan beberapa input lag dalam permainan. Tidak tahu persis mengapa itu terjadi.

Vi0
sumber
Perangkat apa yang Anda miliki? Kedengarannya seperti itu sangat terbatas sumber daya. Mungkin custom ROM yang cepat dan ringan akan meningkatkan kinerja.
Aliran
Sony Ericsson Xperia X10. Apa yang dimaksud dengan "sumber daya terbatas"? Ini harus memprioritaskan media daripada aktivitas biasa, memungkinkan pemutaran lancar secara independen pada berapa banyak beban latar belakang hadir. Juga mencoba menyebabkan beban dengan secara eksplisit menggunakan aplikasi berat yang memonopoli CPU dan memori tidak mengarah ke audio yang berombak sementara hanya menghubungkan kembali Wifi selalu menghasilkan pemotongan. Juga dimainkan kurang lebih baik di Android 2.1
Vi0
Musik memainkan bahkan saya memaksa gubernur cpufreq (dan CPU non-nice load sekitar 20% dalam hal ini). Sumber daya apa yang pendek?
Vi0
Dari apa yang dapat saya baca dari komentar tambahan Anda: tidak ada. Dan saya juga belum pernah mendengar bahwa X10 memiliki masalah umum dengan pemutaran audio.
Aliran
Termasuk setelah memperbarui ke Android 2.3?
Vi0

Jawaban:

0

Coba matikan semua aplikasi atau perangkat keras yang menggunakan banyak sumber daya ponsel. Matikan GPS, WIFI, Layanan Jaringan, dan redupkan lampu latar. Juga matikan aplikasi lain yang sedang berjalan selain yang Anda perlukan untuk memutar musik. Jika ini masih tidak berfungsi, perangkat Anda mungkin tidak memiliki cukup memori.

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
sumber
Sepertinya saran umum, bukan solusi / solusi untuk bug. Saya mencoba berbagai mode (dijelaskan dalam pertanyaan). Pembunuh OOM hanyalah salah satu hal yang memicu bug.
Vi0
0

Tambah Audio Bufferukuranmu.

Saya menggunakan PlayerPro Music Player dengan paket DSP-nya. Paket DSP memungkinkan saya untuk menyesuaikan ukuran buffer audio. Saya tidak pernah perlu menggunakan fitur ini, tetapi ini akan membantu Anda.

Anda juga dapat menemukan pemutar musik lain untuk mendukung fitur ini. Kuncinya adalah Audio Buffer.

Atau, Anda dapat mengurangi kualitas musik dan juga memuat sistem.

Android Quesito
sumber
Setidaknya pengaturan ukuran buffer maksimum dalam Mixzing player tidak membantu.
Vi0
1
"kurangi kualitas musik dan juga beban sistem" -> solusi, bukan perbaikan. Saya sudah memiliki pemecahan masalah
hacky