Sto riscontrando uno strano problema durante il tentativo di implementare la riproduzione audio in streaming a bassa latenza su un Nexus 6 con Android 6.0.1 che utilizza OpenSL ES.Android con Nexus 6 - come evitare una diminuzione della priorità del thread audio OpenSL relativa all'app focus?
Il mio tentativo iniziale sembrava essere affetto da problemi di inedia, quindi ho aggiunto alcuni parametri di riferimento temporali di base nella funzione di callback di completamento del buffer. Quello che ho trovato è che l'audio viene riprodotto correttamente se tocco continuamente lo schermo mentre la mia app è aperta, ma se la lascio in pace per qualche secondo, la callback inizia a richiedere molto più tempo. Sono in grado di riprodurre questo comportamento in modo coerente. Un paio di cose da notare:
- "pochi secondi" ~ = 3-5 secondi, non abbastanza a lungo per innescare un cambio di pagina
- dell'attività di mio applicazione imposta FLAG_KEEP_SCREEN_ON, quindi nessun cambiamento schermo dovrebbe avvenire comunque
- Non ho intrapreso alcuna azione per provare ad aumentare la priorità del thread di callback audio, poiché avevo l'impressione che Android riservasse un'alta priorità per questi thread già
- Il comportamento si verifica sul mio Nexus 6 (Android 6.0.1), ma Non ho un Galaxy S6 disponibile (Android 5.1.1).
I sintomi che sto vedendo sembrano davvero come il sistema operativo diminuisce la priorità del thread audio dopo alcuni secondi di non interazione con il telefono. È giusto? C'è un modo per evitare questo comportamento?
Inoltre non si verifica su un Nexus 5 con Android 4.4.2. –
La priorità del thread di registrazione durante la riproduzione sembra mostrare che la priorità del thread non cambia effettivamente quando si tocca lo schermo. Forse l'evento tattile sta provocando un'interruzione che mette in crisi ciò a cui è probabile che ritorni lo scheduler? –
Sto riscontrando lo stesso problema nelle mie app. Finché interagisco con lo schermo, tutto scorre liscio come dovrebbe. Non appena smetto di toccare lo schermo, inizia con enormi cadute dopo alcuni (circa 3-5 secondi). Quando ricomincio a interagire con lo schermo, si ritorna al funzionamento regolare. Non importa se l'interazione dello schermo fa qualcosa di reale, né se il dito si innesca con uno specifico controllo/pulsante. Non appena un dito si muove sullo schermo, tutto l'audio scorre liscio. Non succede su Android 5.x, è appena iniziato con 6.0, ed è anche il caso su Android N. – gal