【问题标题】:Android Audio Player Start playing another song with already playing songAndroid Audio Player 开始播放另一首已播放歌曲的歌曲
【发布时间】:2014-11-09 08:42:27
【问题描述】:

我正在制作音频播放器(android)。问题是当我启动我的应用程序>播放歌曲>按后退键或回家歌曲仍在后台播放但是当我再次打开应用程序时,它开始播放新歌老歌也在播放。如何摆脱这个?

【问题讨论】:

  • 您可以在销毁活动时释放媒体播放器

标签: android android-mediaplayer


【解决方案1】:

停止并释放onDestroy中的media player,例如:

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    if(mp!=null){
         mp.stop();
         mp.release();
         mp = null;
    }
}

【讨论】:

  • 但我不想破坏。我希望当我恢复应用程序时,播放器也会从那里恢复。
  • @XäiñUlAbideen 看看:stackoverflow.com/questions/3855151/… 或者做一些谷歌搜索,结合我的答案:)
  • @XäiñUlAbideen 请接受我的回答,因为我回答了您关于停止媒体播放器的主要问题:)
  • 我适合你的答案,但我已经知道了。我也想让我的应用程序在后台运行,所以请你指导我兄弟????
【解决方案2】:

在播放新歌之前,在stop() 方法之后使用mediaplayer.reset();

在选择和播放新歌方法中添加这些点:

  1. 检查曲目是否正在播放:

    if(mp.isPlaying())
    

    ...其中mpMediaPlayer 对象。

  2. 如果,则停止播放,然后重置媒体播放器:

    mp.stop();  
    mp.reset();
    

    mp.reset() 将重置 MediaPlayer 的所有初始化,例如:歌曲 URI 等。

    如果不是,则只重置媒体播放器:

    mp.reset();  
    
  3. 现在从列表中获取新选择的曲目的位置和ID,并将其设置为新的URI。

  4. 根据新的 URI 播放曲目:

    mp = MediaPlayer.create(this, NewTrackUri);  
    mp.start();
    

    这应该只播放新选择的曲目。

【讨论】:

    【解决方案3】:

    问题是我不知道在后台运行的服务。现在我正在使用一项服务来电镀歌曲并从服务更新活动 UI,当我的应用程序在后台播放歌曲时,当我重新打开应用程序并选择另一首歌曲时,之前停止播放并开始播放新歌曲 感谢大家的帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多