آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

قطع آهنگ هنگام بستن اکتیویتی

یاسر   9 سال پیش  9 سال پیش
0 0

سلام

هنگام بستن اکتیویتی اصلی برنامه آهنگ در حال پخش قطع میشه (حتی وقتی از Service استفاده میکنم)

کد Service

 public class PlayMusic extends Service implements MediaPlayer.OnCompletionListener {
  MediaPlayer mediaPlayer;

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

  @Override
  public void onCreate() {
    mediaPlayer = MediaPlayer.create(this, Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath() + "/path/sound.mp3"));
    mediaPlayer.setOnCompletionListener(this);
  }

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

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

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

و اینم کد اجرای Service

     Intent playbackServiceIntent = new Intent(HomeActivity.this, PlayMusic.class);

    Button btnPlay = (Button) findViewById(R.id.btn_play);
    btnPlay.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        startService(playbackServiceIntent);
      }
    });

آهنگ توی پس زمینه پخش میشه ولی وقتی برنامه بطور کامل بسته میشه آهنگ هم قطع میشه کسی میدونه دلیلش چیه ؟

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Amir  9 سال پیش
0 0

من از این کد استفاده می کنم و مشکلی نداره:

package app.test;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.os.IBinder;

public class PlayMusic extends Service {

public MediaPlayer musicPlayer;

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
musicPlayer = MediaPlayer.create(G.currentactivity, Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath() + "/path/sound.mp3"));
musicPlayer.start();
return Service.START_FLAG_REDELIVERY;
}

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

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .