Player.EventListener 已弃用 如何在 Java 中使用 Player.Listener 代替

Gan*_* MB 10 java android event-listener deprecated exoplayer

在 Exoplayer 版本中2.14.1 Playerd.EventListener()已弃用。当我阅读文档时,它说使用而不是Player.Listener,但我不知道如何使用该方法,如下面的代码。

simpleExoPlayer.addListener(new Player.EventListener() {
            @Override
            public void onPlaybackStateChanged(int state) {
                if (state == simpleExoPlayer.STATE_READY) {

                    aspectRatioFrameLayout.setAspectRatio(16f / 9f);
                } else {
                    playerView.hideController();
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

Zac*_*ell 18

根据那里的文档,你会想要类似的东西:

simpleExoPlayer.addListener(new Player.Listener() {
        @Override
        public void onPlaybackStateChanged(@State int state) {
            if (state == Player.STATE_READY) {

                aspectRatioFrameLayout.setAspectRatio(16f / 9f);
            } else {
                playerView.hideController();
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)


Tip*_*iff 5

Kotlin中使用此代码,有关更多详细信息,请参阅此 文档

 player!!.addListener(object : Player.Listener { // player listener

            override fun onPlayerStateChanged(playWhenReady: Boolean, playbackState: Int) {
                when (playbackState) { // check player play back state
                    Player.STATE_READY -> {
                      aspectRatioFrameLayout.setAspectRatio(16f / 9f)
                    }
                    Player.STATE_ENDED -> { 
                         //your logic 
                    }
                    Player.STATE_BUFFERING ->{ 
                         //your logic 
                    }
                    Player.STATE_IDLE -> { 
                         //your logic 
                    }
                    else -> {
                       playerView.hideController()
                    }
                }
            }
        })
Run Code Online (Sandbox Code Playgroud)

  • onPlayerStateChanged 已弃用。使用 onPlaybackStateChanged(int) 和 onPlayWhenReadyChanged(boolean, int) 代替 https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/Player.Listener.html#onPlayerStateChanged(boolean,@com.google.android. exoplayer2.Player.Stateint) (2认同)