Come fare in modo che Android riproduca la musica in modo affidabile, senza tagliare?


10

Quando provo a riprodurre musica su Android 2.3 (utilizzando vari lettori, incluso PowerAmp) su Sony Ericsson Xperia X10, non riesco ad ottenere un suono affidabile. La musica viene messa in pausa per un breve periodo, ad esempio quando:

  • Premo il pulsante di accensione (specialmente ripetutamente) ( request_suspend_state: sleep;request_suspend_state: wakeupin dmesg)
  • Quando vedo messaggi come send sigkill to 15497 (ndroid.settings), adj 8, size 6428in dmesg
  • Quando alcuni programmi reagiscono al cambiamento di orientamento dello schermo.
  • Quando viene stabilita la connessione wifi, quando la costringo a "riassociare"
  • Quando vado a / dall'applicazione dalla schermata principale (AWDLauncher), tranne che per / dalla schermata WidgetLocker.
  • Quando abilito / disabilito la Modalità aereo.
  • Quando il display è spento (il più fastidioso)

Quando l'unico modo davvero stabile per riprodurre musica è utilizzare StayAwake per forzare la visualizzazione, disattivare il Wi-Fi, attivare la Modalità aereo e non cambiare applicazione. L'avvio di hog della CPU come while true; do true; donenon influisce sul taglio.

E stava giocando più o meno bene su Android 2.1.

Il processo "mediaserv" (che scrive in / dev / msm_pcm_out) ha priorità io e pianificazione in tempo reale, ma il suono è comunque instabile. Se comincio a giocare dalla console con mplayer -ao pcm:file=/dev/msm_pcm_outil sound chop di meno (in particolare non viene interrotto dal pulsante di accensione / caricamento di grappoli di processi pesanti), ma continuo a non funzionare normalmente quando lo schermo è spento (anche se ionice -c1 -p4 cat /dev/urandom > /dev/msm_pcm_outè instabile)

Quando avvio la musica A come di consueto e la musica B usando mplayer per / dev / msm_pcm_out (facendole mescolare) la musica A taglia più del solito e di solito sento B quando A è in chop. Quando spengo lo schermo, sia A che B tagliano in sincronia (l'arresto di B porta a una riproduzione relativamente più fluida di A in questo modo).

Come riprodurre musica su Android in modo affidabile in presenza di un carico in background? Devo segnalare un bug da qualche parte?

Aggiornamento Trovato un modo per riprodurre musica. Sconveniente, ma senza tagliare :

  1. Avviare WakeLock in modalità "CPU on, Screen Off, Keyboard off"
  2. Usa mplayer per riprodurre musica bypassando 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)

Gioca senza tagliare, non importa quante applicazioni avvii, cosa fare con Wifi, orientamento e modalità aereo. Anche con "powersave" governatore cpufreq (tutto molto lento, ma la musica suona bene). Quindi l'hardware ha abbastanza risorse per riprodurlo.

Aggiornamento 2 Sembra fare

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

vale a dire "Imposta la priorità inattiva per tutti i processi" rende la musica riproducibile anche quando {avvio programmi, blocco schermo, giro schermo; si riconnette ad altre stazioni di rete mobile} a scapito di un ritardo di input nei giochi. Non so esattamente perché succede.


Che dispositivo hai? Sembra che sia molto limitato dalle risorse. Forse una ROM personalizzata veloce e leggera migliorerebbe le prestazioni.
Flusso

Sony Ericsson Xperia X10. Cosa significa "risorse limitate"? Dovrebbe dare la priorità ai media rispetto alle normali attività, consentendo una riproduzione fluida indipendentemente dal carico di sfondo presente. Anche il tentativo di causare il carico utilizzando esplicitamente applicazioni pesanti che controllano la CPU e la memoria non porta a un audio discontinuo, mentre il solo riassociare Wifi produce sempre chop. Inoltre ha giocato più o meno bene su Android 2.1
Vi0

La musica suona allo stesso modo anche se forza powersave cpufreq governor (e il carico non piacevole della CPU è di circa il 20% in questo caso). Quali risorse possono essere brevi?
Vi0,

Da quello che posso leggere dai tuoi commenti aggiuntivi: nessuno. Inoltre, non ho mai sentito dire che l'X10 abbia un problema generale con la riproduzione audio.
Flusso

Compreso dopo l'aggiornamento ad Android 2.3?
Vi0,

Risposte:


0

Prova a disattivare qualsiasi applicazione o hardware che utilizza molte risorse del telefono. Disattiva GPS, WIFI, servizio di rete e attenua la retroilluminazione. Chiudi anche tutte le altre applicazioni in esecuzione rispetto a quelle necessarie per la riproduzione di musica. Se il problema persiste, il dispositivo potrebbe non disporre di memoria sufficiente.


Sembra un consiglio generale, non una soluzione / soluzione al bug. Ho provato varie modalità (descritte in questione). Killer OOM è solo una delle cose che scatenano il bug.
Vi0,

0

Aumenta la tua Audio Buffertaglia.

Uso PlayerPro Music Player con il suo pacchetto DSP. Il pacchetto DSP mi consente di regolare le dimensioni del buffer audio. Non ho mai avuto bisogno di usare questa funzione, ma ti aiuterà.

Puoi anche trovare altri lettori musicali per supportare questa funzione. La chiave è Audio Buffer.

In alternativa, è possibile ridurre la qualità della musica e il carico del sistema.


Almeno l'impostazione della dimensione massima del buffer nel Mixzing player non aiuta.
Vi0

1
"Riduci la qualità della musica e il caricamento del sistema" -> soluzione alternativa, non risolto. Ho già delle soluzioni alternative (vedi "Aggiornamenti")
Vi0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.