Android'i doğramadan güvenilir bir şekilde müzik çalma nasıl yapılır?


10

Sony Ericsson Xperia X10'da Android 2.3'te (PowerAmp dahil çeşitli oynatıcılar kullanarak) müzik çalmaya çalıştığımda güvenilir ses alamıyorum. Müzik kısa bir süre duraklar, örneğin:

  • Güç düğmesine basıyorum (özellikle tekrar tekrar) ( request_suspend_state: sleep;request_suspend_state: wakeupdmesg'de)
  • send sigkill to 15497 (ndroid.settings), adj 8, size 6428Dmesg'de olduğu gibi mesajlar gördüğümde
  • Bazı program değişen ekran yönüne tepki gösterdiğinde.
  • Wifi bağlantısı kurulduğunda, onu "yeniden birleştirmeye" zorladığımda
  • WidgetLocker ekranına / ekranından hariç, ana ekrandan (AWDLauncher) uygulamaya / uygulamadan gittiğimde.
  • Uçak Modunu etkinleştirdiğimde / devre dışı bıraktığımda.
  • Ekran kapalıyken (en sinir bozucu)

Müzik çalmanın gerçekten kararlı bir yolu, ekranı zorlamak, Wi-Fi'yi kapatmak, Uçak Modunu açmak ve uygulamaları değiştirmemek için StayAwake kullanmaktır. CPU domuzlarını başlatmak, kesmeyi while true; do true; doneetkilemez.

Ve Android 2.1'de az çok iyi oynuyordu.

"mediaserv" işlemi (/ dev / msm_pcm_out'a yazan) gerçek zamanlı io ve zamanlama önceliğine sahiptir, ancak ses yine de kesik kesiktir. Konsoldan mplayer -ao pcm:file=/dev/msm_pcm_outses kesme ile daha az oynatmaya başlarsam (özellikle güç düğmesi / ağır işlem demetlerinin yüklenmesi ile kesintiye uğramaz), ancak ekran kapalıyken hala normal davranmaz (hatta ionice -c1 -p4 cat /dev/urandom > /dev/msm_pcm_outdalgalı)

A müziğini her zamanki gibi başlattığımda ve mplayer kullanarak / dev / msm_pcm_out (karışık hale getirme) müzik B'yi başlattığımda A normalden daha fazla pirzola ve genellikle A pirzoladayken B'yi duyuyorum. Ekranı kapattığımda, hem A hem de B kesiliyor (B'yi durdurmak A'nın bu şekilde daha akıcı şekilde oynatılmasına neden oluyor).

Android'de arka plan yükü varlığında güvenilir bir şekilde müzik nasıl çalınır? Bir yerde bir hata rapor etmeli miyim?

Güncelleme Müzik çalmanın bir yolunu buldu. Uygunsuz, ancak doğramadan :

  1. WakeLock'u "CPU açık, Ekran Kapalı, Klavye kapalı" modunda başlatın
  2. Android'i atlayarak müzik çalmak için mplayer kullanın:
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)

Ne kadar uygulama başlattığım önemli değil, Wifi, yönlendirme ve uçak modlarıyla ne olursa olsun doğramadan oynar. "Powersave" cpufreq valisi ile bile (her şey çok yavaş, ama müzik iyi oynuyor). Yani donanımın oynatmak için yeterli kaynağı var.

Güncelleme 2 Yapıyor gibi görünüyor

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

yani, "tüm işlemler için Boşta önceliğini ayarla", oyunlarda bazı giriş gecikmeleri pahasına {programları başlat, ekranı kilitle, ekranı döndür; Neden olduğunu tam olarak bilmiyorum.


Hangi cihazınız var? Kaynak kısıtlı gibi görünüyor. Belki hızlı ve hafif bir özel ROM performansı artırabilir.
Akış

Sony Ericsson Xperia X10. "Kaynak kısıtlamalı" ne demektir? Ortamın olağan etkinliklere göre önceliklendirilmesi, ne kadar arka plan yükünün mevcut olduğu konusunda bağımsız olarak akıcı oynatmaya izin vermelidir. Ayrıca, CPU'yu ve belleği hog kullanan ağır uygulamaları kullanarak yüke neden olmaya çalışmak, sadece Wifi'yi yeniden birleştirmek her zaman pirzola üretir. Ayrıca Android 2.1
Vi0

Powersave cpufreq valisini zorladığım halde müzik de aynı şekilde çalıyor (ve CPU bu durumda hoş olmayan yük yaklaşık% 20'dir). Hangi kaynaklar kısa olabilir?
Vi0

Ek yorumlarınızdan okuyabileceğim şeylerden: hiçbiri. Ayrıca X10'un ses çalmayla ilgili genel bir sorunu olduğunu hiç duymadım.
Akış

Android 2.3 güncellemesinden sonra dahil mi?
Vi0

Yanıtlar:


0

Telefon kaynaklarının çoğunu kullanan tüm uygulamaları veya donanımları kapatmayı deneyin. GPS, WIFI, Ağ Hizmeti'ni kapatın ve arka ışığı kısın. Ayrıca, müzik çalmak için ihtiyacınız olan uygulamalardan başka çalışan uygulamaları da kapatın. Bu yine de işe yaramazsa, cihazınızda yeterli bellek olmayabilir.


Genel bir tavsiye gibi görünüyor, hataya bir çözüm / geçici çözüm değil. Çeşitli modları denedim (söz konusu). OOM katili, hatayı tetikleyen şeylerden sadece biridir.
Vi0

0

Senin arttırın Audio Bufferboyutunu.

PlayerPro Music Player'ı DSP paketi ile kullanıyorum. DSP paketi ses arabellek boyutunu ayarlamama izin veriyor. Bu özelliği hiç kullanmam gerekmedi, ancak bu size yardımcı olacaktır.

Bu özelliği desteklemek için başka müzik çalarlar da bulabilirsiniz. Anahtar Audio Buffer.

Alternatif olarak, sistem yükünün yanı sıra müzik kalitesini de düşürebilirsiniz.


En azından Mixzing oynatıcısında maksimum arabellek boyutunu ayarlamak yardımcı olmaz.
Vi0

1
"müzik kalitesini ve sistem yükünü azaltın" -> çözümü, düzeltmeyin. Zaten hacky geçici çözümlerim var (bkz. "Güncellemeler")
Vi0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.