L'API audio sembra mancare una funzione per indicare che un suono è finito. C'è un altro modo per scoprire se il suono è fatto?LIBGDX: Come posso sapere quando un suono ha finito di suonare?
risposta
Non senza la presentazione di una patch per libgdx per quanto ne so i backend del suono sottostanti sia per OpenAL e Android non hanno nemmeno tenere traccia delle informazioni internamente, anche se l'API La musica ha una funzione isPlaying() e la funzione getPosition() come per il documentation.
solo impostare questo
sound.setLooping(false);
questo modo non verrà eseguito di nuovo e di nuovo.
e per verificare se il suono è in riproduzione o non farlo.
fare una variabile booleana
boolean soundplaying;
nel metodo render fare questo
if(sound.isPlaying()){
soundplaying =true
}
e fare un log
gdx.app.log("","sound"+soundplaying);
Penso che questa risposta sia corretta. Proprio al posto della classe 'Sound' usa la classe' Music' e ottieni tutto quello che vuoi - usa 'isPlaying()' o 'setOnCompletionListener (..)' e 'OnCompletionListener'. – monnef
Questo è stato portato nella più recente ritrovo libGDX troppo (che conferma che non c'è API ATM): http://www.youtube.com/watch?v=Ppr7QPeMlMo. Credo che il work-around menzionato nel video sia sapere per quanto tempo funziona l'audio ... –
Ho risolto due cose, rendendo i suoni più accettabili da riprodurre sovrapposti, e salvando l'ultimo tempo di riproduzione e la durata della riproduzione. Adoro comunque libgdx nonostante. – leech