5、其中用到的IServicePlayer.aidl,放在和Java文件相同的包中,内容如下:
java代码:
java代码:
package eoe.demo;
interface IServicePlayer{
void play();
void pause();
void stop();
int getDuration();
int getCurrentPosition();
void seekTo(int current);
boolean setLoop(boolean loop);
}
一旦你写好了这个IServicePlayer.aidl文件,ADT会自动帮你在gen目录下生成IServicePlayer.java文件
6、MusicService.java的内容如下:
java代码:
package eoe.demo;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
public class MusicService extends Service {
String tag = "yao";
public static MediaPlayer mPlayer;
public boolean isPause = false;
IServicePlayer.Stub stub = new IServicePlayer.Stub() {
@Override
public void play() throws RemoteException {
mPlayer.start();
}
@Override
public void pause() throws RemoteException {
mPlayer.pause();
}
@Override
public void stop() throws RemoteException {
mPlayer.stop();
}
@Override
public int getDuration() throws RemoteException {
return mPlayer.getDuration();
}
@Override
public int getCurrentPosition() throws RemoteException {
return mPlayer.getCurrentPosition();
}
@Override
public void seekTo(int current) throws RemoteException {
mPlayer.seekTo(current);
}
@Override
public boolean setLoop(boolean loop) throws RemoteException {
return false;
}
};
@Override
public void onCreate() {
Log.i(tag, "MusicService onCreate()");
mPlayer = MediaPlayer.create(getApplicationContext(), ElfPlayerUtil.getFileinSD("wind.mp3"));
}
@Override
public IBinder onBind(Intent intent) {
return stub;
}
}
7、效果图: