押されたときに音楽を一時停止または再開するボタンをレイアウトに 1 つ含むアクティビティを作成しようとしています。問題は、音楽を再開するために押すと、オーディオファイルが最初からやり直されることです。再起動するのではなく、最後に停止したポイントから再生する方法はありますか?
主な活動
public class MainActivity extends Activity implements OnClickListener {
private Boolean isMusicPlaying;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View musicButton = findViewById(R.id.music_button);
musicButton.setOnClickListener(this);
startService(new Intent(getBaseContext(), MusicService.class));
isMusicPlaying = true;
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.music_button)
if (isMusicPlaying) stopService(new Intent(getBaseContext(),
MusicService.class));
else startService(new Intent(getBaseContext(), MusicService.class));
isMusicPlaying = !isMusicPlaying;
}
}
サービスクラス
public class MusicService extends Service {
MediaPlayer player;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.song);
player.setLooping(true); // Set looping
player.setVolume(100, 100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return START_STICKY;
}
@Override
public void onDestroy() {
player.pause();
}
}