2011-11-26 78 views
1

我有一項活動是使用媒體播放器播放音頻的服務。這是服務媒體服務活動

class MusicService extends Service implements OnCompletionListener { 
MediaPlayer mediaPlayer; 

@Override 
public IBinder onBind(Intent intent) { 
return null; 
} 

@Override 
public void onCreate() { 
    mediaPlayer = MediaPlayer.create(this, R.raw.s);// raw/s.mp3 
    mediaPlayer.setOnCompletionListener(this); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
if (!mediaPlayer.isPlaying()) { 
    mediaPlayer.start(); 
} 
return START_STICKY; 
} 

    public void onDestroy() { 
    if (mediaPlayer.isPlaying()) { 
    mediaPlayer.stop(); 
    } 
    mediaPlayer.release(); 
} 

public void onCompletion(MediaPlayer _mediaPlayer) { 
stopSelf(); 
} 

} 

而不是從原始文件,我想它從那就是來自於SD卡中的String的路徑玩遊戲。路徑保存在調用服務的類中,我如何將該字符串傳遞給服務類並將其放入mediaplayer創建方法中。這裏就是我所說的服務

private void playAudio(String url) throws Exception{ 
Intent music = new Intent(this,MusicService.class); 
startService(music); 

}

回答

1

使用開始意圖putExtra命令:

music.putExtra(key, value); 

然後得到在您的媒體播放服務的onStartCommand傳遞信息:

intent.getExtras().getString(key); 

請注意,在w的情況下,這個意圖可以爲空當該服務由系統重新啓動時。