我希望在我的应用程序中播放音乐,而不管应用程序中发生了什么。我正在尝试使用 Service
来实现它。这是 MyService.class
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
public class MyService extends Service implements MediaPlayer.OnPreparedListener {
MediaPlayer mMediaPlayer = null;
private static final String ACTION_PLAY = "com.example.action.PLAY";
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getAction().equals(ACTION_PLAY)) {
mMediaPlayer = MediaPlayer.create(this, R.raw.theme_song);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.prepareAsync(); // prepare async to not block main thread
return 1;
} else {
return 0;
}
}
public void onPrepared(MediaPlayer player) {
player.start();
}
}
能否请您帮助我了解如何在 MyActivity 中使用 Service
以及需要在 MyService.class 中定义哪些其他方法才能获得正确的结果。
最佳答案
public class BackGroundMusic extends Service {
MediaPlayer mediaPlayer;
AudioManager audioManager;
int volume;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mediaPlayer = MediaPlayer.create(this, R.raw.tune);
mediaPlayer.start();
return super.onStartCommand(intent, flags, startId);
}
@Override
public boolean stopService(Intent name) {
return super.stopService(name);
}
@Override
public void onDestroy() {
super.onDestroy();
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
}
}
如果你需要播放音乐
startService(new Intent(MainActivity.this, BackGroundMusic.class))
如果你想停止音乐
stopService(new Intent(MainActivity.this, BackGroundMusic.class))..
关于java - 如何在 Android 应用程序的后台播放音乐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41222671/