返回活动时如何避免创建MediaPlayer的新实例
Posted
技术标签:
【中文标题】返回活动时如何避免创建MediaPlayer的新实例【英文标题】:How to avoid creating a new instance of MediaPlayer when returning to activity 【发布时间】:2016-07-14 10:23:32 【问题描述】:我正在使用 MediaPlayer,当用户按下返回离开活动时,它会继续在后台播放(我希望发生这种情况),但是当用户返回时,他们无法控制已经在播放的 MediaPlayer,因为mediaPlayer = new MediaPlayer()
行实例化一个新的。
我也无法让mediaPlayer.create()
工作,因为我正在使用需要
mediaPlayer1.reset();
mediaPlayer1.setDataSource(getResources().getString(R.string.Basic_lesson_1));
mediaPlayer1.prepareAsync();
行。仅当一个新的 MediaPlayer 尚不存在时,我如何才能实例化它?
【问题讨论】:
创建静态媒体播放器并检查是否为空 @Pravin 已修复,谢谢!!! 【参考方案1】:创建全局静态媒体播放器并始终按照@Pravin 所说执行验证 同时创建媒体播放器之类的。
if(mediaPlayer == null)
mediaPlayer = new MediaPlayer()
【讨论】:
这修复了它!非常感谢!【参考方案2】:private static MediaPlayer mediaPlayer1 = null;
//SomeActivity's onCreate()
if(mediaPlayer1 == null)
mediaPlayer1.create(...);
【讨论】:
虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。【参考方案3】:如何在 backKeyPress 上调用 stop() 方法
【讨论】:
我需要 MediaPlayer 继续播放:P以上是关于返回活动时如何避免创建MediaPlayer的新实例的主要内容,如果未能解决你的问题,请参考以下文章
如何在所有活动和片段中使用 MediaPlayer 的单个实例?
当应用程序从后台处于活动状态时,如何避免在本机反应中安装组件?