我正在开发一款Android游戏,我为我们的介绍播放一些背景音乐(我们有一个简介活动),但我希望它继续播放到下一个活动,也许能够从任何地方再次停止或播放音乐在申请中。
我创建了Service类来执行此操作
每件事情都很好但我只需要当用户停止音乐时媒体播放器保存getCurrentPosition();所以我可以播放由seekTo(msec)计算的音乐;
主要观点是,如果用户在长度中间停止音乐,音乐将不会从头开始(这就像用户可以暂停音乐并继续播放音乐)
我用
startService(new Intent(this, MyService.class));
启动音乐
我使用
stopService(new Intent(this, MyService.class));
停止音乐
这是我的MyService类
public class MyService extends Service {
private static final String TAG = "MyService";
MediaPlayer player;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
player = MediaPlayer.create(this, R.raw.game_music3);
player.setLooping(false); // Set looping
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
Log.d(TAG, "onDestroy");
player.stop();
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
Log.d(TAG, "onStart");
player.start();
}
protected void onNewIntent() {
player.pause();
}
}
如果有任何事情不清楚,请评论我的问题,我会尝试解释更多 谢谢你的帮助