Java 有效重用Android媒体播放器

Java 有效重用Android媒体播放器,java,android,media-player,android-mediaplayer,Java,Android,Media Player,Android Mediaplayer,我想知道如何更好地重用Android中的MediaPlayer对象,这样如果我在应用程序中进行其他活动,当前的声音播放就不会停止。例如,我目前在一个类中使用MediaPlayer,在该类中我执行AlarmManager接收(BroadcastReceiver)。这就是我所拥有的,有更好的方法吗 public class MyBroadcastReceiver extends BroadcastReceiver { MediaPlayer mp; @Override public voi

我想知道如何更好地重用Android中的MediaPlayer对象,这样如果我在应用程序中进行其他活动,当前的声音播放就不会停止。例如,我目前在一个类中使用MediaPlayer,在该类中我执行AlarmManager接收(BroadcastReceiver)。这就是我所拥有的,有更好的方法吗

public class MyBroadcastReceiver extends BroadcastReceiver
{
   MediaPlayer mp;


@Override
public void onReceive(Context context, Intent intent)
{
    // TODO Auto-generated method stub
    mp = new MediaPlayer();
    playSound(context);
}
private void playSound(Context ctx)
{
    //play the notification sound
    AssetFileDescriptor afd = null;
    try
    {
        afd = ctx.getAssets().openFd("notify.mp3");
    } 
    catch (IOException e1)
    {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    mp.setVolume(5f, 5f);
    try
    {
        mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
    } 
    catch (IllegalArgumentException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
    catch (IllegalStateException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
    catch (IOException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try
    {
        mp.prepare();
    } 
    catch (IllegalStateException | IOException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    mp.start();
    if(!mp.isPlaying())
    {
        mp.release();
    }
}
}
你可以使用服务。 请参考下面的链接。