在android中连续播放mp3文件

在android中连续播放mp3文件,android,android-mediaplayer,Android,Android Mediaplayer,我想在后台连续播放mp3文件。我的意思是,如果我在第一个活动mp3文件应该在后台启动。现在,若我导航到第二个活动,那个么我也想连续播放文件。不应在第二个活动中从开始播放文件 MediaPlayer mediaPlayer; mediaPlayer = MediaPlayer.create(this, R.raw.sound); mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Overri

我想在后台连续播放mp3文件。我的意思是,如果我在第一个活动mp3文件应该在后台启动。现在,若我导航到第二个活动,那个么我也想连续播放文件。不应在第二个活动中从开始播放文件

MediaPlayer mediaPlayer;
mediaPlayer = MediaPlayer.create(this, R.raw.sound);
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
               mediaPlayer.start();
            }

            });

    mediaPlayer.start();
只要在服务中启动它

   private boolean isAppShown() {

    KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
    boolean locked = km.inKeyguardRestrictedInputMode();
    ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> l = mActivityManager
            .getRunningAppProcesses();
    Iterator<ActivityManager.RunningAppProcessInfo> i = l.iterator();
    while (i.hasNext()) {
        ActivityManager.RunningAppProcessInfo info = i.next();

        if (info.uid == getApplicationInfo().uid && info.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && !locked)
        {
            return true;
        }
    }

    return false;
  }
private boolean isAppShown(){
KeyguardManager km=(KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
布尔锁定=km.inKeyguardRestrictedInputMode();
ActivityManager MacActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
列表l=mActivityManager
.getRunningAppProcesses();
迭代器i=l.迭代器();
while(i.hasNext()){
ActivityManager.RunningAppProcessInfo=i.next();
如果(info.uid==getApplicationInfo().uid&&info.importance==ActivityManager.RunningAppProcessInfo.importance\u前台&&!锁定)
{
返回true;
}
}
返回false;
}

这是检查状态的方法,但现在您应该决定在哪里使用它。

给您。这是一个正在运行的音乐播放示例。 您必须编写后台服务才能播放音乐。

使用服务在后台播放-感谢您的快速响应。我用服务和你们的代码启动了播放器。但问题是,当我关闭应用程序时,即使我的应用程序没有运行,声音仍在后台播放。欢迎您!因此,对于您的问题,问题在于应用程序实际上在那里(仍在运行),要停止声音,您应该确定是否至少有一个活动处于活动状态,然后停止服务器内的声音。但我想这是另一个问题;)或者,当您的上一个(或第一个)活动调用onStop()时,您可以将消息发送到服务以停止声音。如果您连续单击播放声音,则此代码将正常工作
 MediaPlayer ring= MediaPlayer.create(MainActivity.this,R.raw.alertsound);
 ring.setLooping(true);
 ring.start();