web-dev-qa-db-fra.com

Écouteur de playlist ExoPlayer 2

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!

23
timoschloesser

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();

            }
        });
8
DoronK