
@OverrIDepublic voID onStop() { super.onStop(); releasePlayer();}public voID releasePlayer() { if (player != null) { player.setPlayWhenReady(true); player.stop(); player.release(); player = null; trackSelector = null; simpleExoPlayerVIEw.setPlayer(null); simpleExoPlayerVIEw = null; System.out.println("releasePlayer"); }} 我读了this,但没有提供太多的解决方案.另外,阅读几篇在VIEwPager片段中使用ExoPlayer的帖子,但不完全确定这些示例是如何发布播放器的.遵循发现here的演示应用程序中的releasePlayer()方法,但没有运气.从onPause(),onDetach(),onDestroyVIEw()调用releasePlayer()但它没有任何区别.
这是在将监听器添加到播放器之后设置的一些日志记录,但是没有看到任何解释为什么它不会释放…
07-05 19:01:07.216 2529-2643/? V/RenderScript: 0xe0494000 Launching thread(s),cpus 407-05 19:01:11.871 3064-3064/? V/MediaCodecInfo: Listener-onPlayerStateChanged...07-05 19:01:11.876 3064-3064/? V/MediaCodecInfo: Listener-onPlayerStateChanged...07-05 19:01:11.904 3064-3064/? V/MediaCodecInfo: Listener-onPlayerStateChanged...07-05 19:01:11.904 3064-3064/? V/MediaCodecInfo: Listener-onTimelineChanged...07-05 19:01:11.904 3064-3064/? V/MediaCodecInfo: Listener-onLoadingChanged...07-05 19:01:11.904 3064-3064/? V/MediaCodecInfo: Listener-onPlayerStateChanged...07-05 19:01:11.904 3064-3064/? V/MediaCodecInfo: Listener-onTimelineChanged...07-05 19:01:11.904 3064-3064/? V/MediaCodecInfo: Listener-onLoadingChanged...07-05 19:01:12.467 3064-3064/? V/MediaCodecInfo: Listener-onTimelineChanged...07-05 19:01:12.468 3064-3064/? V/MediaCodecInfo: Listener-onTimelineChanged...07-05 19:01:12.515 3064-3099/? V/SoftFFmpegVIDeo: got OMX_IndexParamPortDeFinition,wIDth: 320,height: 18007-05 19:01:12.708 3064-3064/? V/MediaCodecInfo: Listener-onPlayerStateChanged...07-05 19:01:12.708 3064-3064/? V/MediaCodecInfo: Listener-onPlayerStateChanged...07-05 19:01:13.380 3064-3064/? V/MediaCodecInfo: Listener-onLoadingChanged...07-05 19:01:13.655 3064-3064/? V/MediaCodecInfo: Listener-onLoadingChanged...07-05 19:01:18.528 3064-3099/? V/SoftFFmpegVIDeo: ~SoftFFmpegVIDeo
尝试按钮单击但失败了
fragmentExoBinding.button.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { System.out.println("button click"); releasePlayer(); } }); 每次关闭它时都会崩溃(使用背压,家庭或近期)b / c不再是玩家.使用if(player!= null)更新了releasePlayer()方法,但即使按下按钮后仍然可以听到内容播放.
解决方法 我在Activity中使用ExoPlayer,我使用的是两个步骤. onPause我停止播放:private SimpleExoPlayer player; @OverrIDeprotected voID onPause() { super.onPause(); // Pause vIDeo if it's playing if (isVIDeoPlaying()) { if (player != null) player.setPlayWhenReady(false); }} 并且onDestroy我发布了播放器
@OverrIDeprotected voID onDestroy() { releasePlayer(); super.onDestroy();}private voID releasePlayer() { if (player != null) { player.stop(); player.release(); player = null; } } 总结 以上是内存溢出为你收集整理的android – ExoPlayer2 – 如何从片段中释放全部内容,希望文章能够帮你解决android – ExoPlayer2 – 如何从片段中释放所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)