как я уже только не пробовал объявлять и где я только не вставлял инициализацию своего массива allpath[]
но public void onCompletion(MediaPlayer arg0) { - эй это пофигу
Весь код для волонтеров
Код: Выделить всё
package om.example.jk;
import java.io.IOException;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
public class MusicService extends Service implements OnCompletionListener{
private static final String TAG = "TAG";
public String allpath[] ;
public int a=0;
private final IBinder mBinder = new ServiceBinder();
Intent intent;
MediaPlayer mPlayer;
private int length = 0;
public String musicfile;
public MusicService() { }
public class ServiceBinder extends Binder {
MusicService getService()
{
return MusicService.this;
}
}
@Override
public IBinder onBind(Intent arg0){return mBinder;}
@Override
public void onCreate (){
super.onCreate();
String allpath[] = new String[95];
mPlayer = MediaPlayer.create(this, R.raw.mile);
}
@Override
public int onStartCommand (Intent intent, int flags, int startId){
a=0;
allpath=intent.getStringArrayExtra("key");
musicfile = allpath[a];
Log.d(TAG, "<><><>!!!:"+ allpath[0]);
Log.d(TAG, "<><><>!!!:"+ allpath[1]);
try {
mPlayer.stop();
}finally {
}
try {
mPlayer = new MediaPlayer();
mPlayer.setDataSource(allpath[a]);
mPlayer.prepare();
mPlayer.start();
mPlayer.setOnCompletionListener(this);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return START_NOT_STICKY; // безсамовосстановления
}
public void pauseMusic()
{
//if(mPlayer.isPlaying())
// {
// mPlayer.pause();
// length=mPlayer.getCurrentPosition();
// }
}
public void looptrue(){
try {
mPlayer.setLooping(true);
}finally { }
}
public void loopfalse()
{
mPlayer.setLooping(false);
}
public void resumeMusic()
{
if(mPlayer.isPlaying()==false)
{
mPlayer.seekTo(length);
mPlayer.start();
}
}
public void stopMusic()
{
mPlayer.stop();
// mPlayer.release();
// mPlayer = null;
}
@Override
public void onDestroy ()
{
super.onDestroy();
if(mPlayer != null)
{
try{
mPlayer.stop();
mPlayer.release();
}finally {
mPlayer = null;
}
}
}
public void onCompletion(MediaPlayer arg0) {
a=a+1;
if (a==3)stopMusic();
musicfile = allpath[a];
Log.d(TAG, "-----------------------:"+musicfile);
try {
mPlayer.setDataSource(musicfile);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mPlayer.start();
mPlayer.setOnCompletionListener(this);
}
}