研究报告
这个时候 TestServiceHolder 和TestService绑定
在一起TestServiceHolder 退出了?Srevice就会调用onUnbind->onDestroyed所谓绑
定在一起就共存亡了。 姓名?张浩
10 有了Service,我可以把MediaPlayer这个对象放到Service里面。通过用外部的
Activity来调用放在Service里MediaPlayer提供的方法来对音乐播放器进行控制。
当程序处在播放界面的时候?Service要和前台界面上显示的东西要做到同步。以
下是Activity中初始化界面时需要与Service连接的代码? private void init() {
button1 = (Button) findViewById(R.id.start);
button1.setOnClickListener(startIt);
button2 = (Button) findViewById(R.id.stop);
button2.setOnClickListener(stopIt);
button3 = (Button) findViewById(R.id.prev);
button3.setOnClickListener(prev);
button4 = (Button) findViewById(R.id.next);
button4.setOnClickListener(next);
musicName = (TextView) this.findViewById(R.id.musicName);
mSeekbar = (SeekBar) findViewById(R.id.seekBar);
mShowNowTime = (TextView) findViewById(R.id.nowTime);
mShowAllTime = (TextView) findViewById(R.id.allTime);
mSeekbar.setOnSeekBarChangeListener(listener_seek_bar);
musicService.player.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mTime = musicService.player.getDuration();
mShowAllTime.setText(setTime(mTime));
musicName.setText(musicService.getMusicName());
mMaxProgress = mTime / 1000;
mSeekbar.setMax(mMaxProgress);
mSeekbar.setProgress(1);
mHandler.removeMessages(MESSAGE);
mHandler.sendMessage(mHandler.obtainMessage(MESSAGE));
Log.e("PREPARED", "setOnPreparedListener");
}
});
if(musicService.isPlaying()){
int p = musicService.player.getCurrentPosition()/1000;
mTime = musicService.player.getDuration();
mShowAllTime.setText(setTime(mTime));
musicName.setText(musicService.getMusicName());
mMaxProgress = mTime / 1000;
mSeekbar.setMax(mMaxProgress);
mSeekbar.setProgress(p);
mHandler.sendMessage(mHandler.obtainMessage(MESSAGE));
}else{
try{
musicService.player.prepare(); 2006级 张 浩 毕业设计
11 }catch(Exception e){}
musicService.player.start();
}
} 以下是Service中对MediaPlayer控制的核心代码? public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
position = intent.getExtras().getInt("position");
musicPath = mFiles.get(position).getPath();
musicName = mFiles.get(position).getName();
if (isPlaying()) {
reset();
}
setPath();
}
// 设置文件路径
public void setPath() {
try {
player.setDataSource(musicPath);
} catch (Exception e) {
e.printStackTrace();
}
}
// 播放 暂停
public void playOrPause() {