如何释放Exoplayer PlayerView的播放器?

Pho*_*ton 3 android exoplayer

我在应用程序的两个片段中使用了 PlayerView (com.google.android.exoplayer2.ui.PlayerView) 的两个不同实例。这两个 Playerview 实例对播放器使用相同的 SimpleExoPlayer 实例。在fragment1中,playerView1工作正常,当我转到fragment2时,使用相同SimpleExoPlayer实例的playerView2也工作正常。问题是当我返回到fragment1 时,playerView1 没有显示任何内容。我想在回到第一个片段之前我应该​​释放playerView2的播放器,但我不知道如何。

在fragment1(kotlin)中:

playerView1.player = myGlobalSimpleExoPlayer
Run Code Online (Sandbox Code Playgroud)

在fragment2(kotlin)中:

playerView2.player = myGlobalSimpleExoPlayer
Run Code Online (Sandbox Code Playgroud)

Pho*_*ton 7

经过尝试不同的方法终于找到了解决方案。我在这里分享解决方案,也许对遇到同样问题的其他人有用。

在设置 PlayerView 的播放器之前的每个片段中,我为播放器设置了 null 值(每次切换片段时都应该执行此操作,而不仅仅是第一次):

playerView.player = null // add this before setting the actual player
playerView.player = myGlobalSimpleExoPlayer
Run Code Online (Sandbox Code Playgroud)