我試圖在Android中使用服務播放音樂。我正在努力的是停止服務和音樂。這裏是我的服務:停止音樂和服務
MediaPlayer mediaPlayer;
public SoundService() {
super("SoundService");
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
protected void onHandleIntent(Intent intent) {
}
@Override
public void onCreate() {
super.onCreate();
mediaPlayer = MediaPlayer.create(getApplicationContext(),R.raw.zenenegy);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
return START_STICKY;
}
public void stopp(){
Log.d("SERVICE","STOP");
stopSelf();
}
@Override
public void onDestroy() {
super.onDestroy();
}
當我稱之爲「STOPP」的方法,我得到了日誌,以便服務應該已經停止,但音樂繼續。我不知道如何停止音樂,因爲當我試圖使用mediPlayer.stop();方法我總是收到錯誤消息,所以如果我可以隨時停止服務,那就太好了。下面是活動的代碼:
public Button zene;
public boolean hang = true;
SoundService soundService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fomenu);
if(hang){
startService();
}
}
@Override
protected void onResume() {
zene = (Button)findViewById(R.id.zene);
zene.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(hang){
soundService.stopp();
//soundService.onDestroy();
}
hang = !hang;
}
});
super.onResume();
}
public void startService(){
startService(new Intent(getBaseContext(), SoundService.class));
}
public void stopService(){
stopService(new Intent(getBaseContext(),SoundService.class));
}
}
我試着使用stopService();方法,但它不起作用。如果有人有一個想法如何停止服務中的音樂,請回復。
做你嘗試調用mediaplayer.stop()和的OnDestroy –
是釋放並沒有奏效。 –
嘗試傳遞此mediaplayer oncreate而不是getapplicationcontext() –