J'utilise les nouvelles fonctionnalités d'ExoPlayer 2.x pour lire une liste de fichiers audio comme ceci:
List<MediaSource> playlist = new ArrayList<>();
...
ConcatenatingMediaSource concatenatedSource = new ConcatenatingMediaSource(
playlist.toArray(new MediaSource[playlist.size()]));
mExoPlayer.prepare(concatenatedSource);
mExoPlayer.setPlayWhenReady(true);
Cela fonctionne bien, mais pour mettre à jour mon interface utilisateur en conséquence, j'ai besoin de savoir quelle piste est en cours de lecture et la progression de cette piste. Y a-t-il un écouteur d'ExoPlayer?
Merci!
Vous pouvez implémenter l'événement suivant et mettre à jour votre interface utilisateur en fonction de l'état du joueur.
mExoPlayer.addListener(new ExoPlayer.Listener() {
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
if (playbackState == PlaybackStateCompat.STATE_PLAYING) {
//do something
}
}
@Override
public void onPlayWhenReadyCommitted() {
}
@Override
public void onPlayerError(ExoPlaybackException error) {
mExoPlayer.stop();
}
});