到目前为止,我只发现了如何让ExoPlayer在应用程序进入后台时继续播放的问题。为什么我不给这个bs编码呢??
到目前为止,这就是我所拥有的,它位于RecyclerView OnBingViewHolder中:
val player = ExoPlayer.Builder(context).build()
val mediaItem: MediaItem = MediaItem.fromUri(fileUrl)
player.setMediaItem(mediaItem)
player.repeatMode = Player.REPEAT_MODE_ONE
holder.vidPlayer.player = player
player.prepare()
player.seekTo(100)
// player.play()
holder.vidPlayer.setTag(mpTag, player)
holder.vidPlayer.setTag(manuelPlayTag, false)
holder.vidPlayer.setTag(manuelPauseTag, false)
player.addListener(object : Player.Listener { // player listener
override fun onPlayerStateChanged(playWhenReady: Boolean, playbackState: Int) {
if (playWhenReady && playbackState == Player.STATE_READY) {
Log.d(tagg, "state: plays")
holder.vidPlayer.hideController()
} else if (playWhenReady) {
// might be idle (plays after prepare()),
// buffering (plays when data available)
// or ended (plays when seek away from end)
} else {
Log.d(tagg, "state: pause")
holder.vidPlayer.showController()
}
}
})
当应用程序转到后台时,我是如何阻止游戏的?
发布于 2022-01-06 23:56:45
当您的应用程序进入后台时,将调用活动片段/活动的生命周期方法onPause
(和onStop
)。在onPause
方法中,您可以cycle through your bound ViewHolders并停止视频播放器。
发布于 2022-01-10 14:36:03
当应用程序转到后台时,您可以简单地stop
ExoPlayer。
override fun onStop() {
super.onStop()
simpleExoPlayer.stop()
}
在onStart
中,又是prepare()
ExoPlayer:
override fun onStart() {
super.onStart()
simpleExoPlayer.prepare()
}
为了自动播放媒体,您需要设置
playWhenReady = true
。
simpleExoPlayer.playWhenReady = true
通过设置playWhenReady = true
,它将自动播放内容,我们不需要显式调用simpleExoPlayer.play()
。
https://stackoverflow.com/questions/70614975
复制相似问题