عدم پخش صدا بعد از ریلود کردن اکتیویتی
سلام به همه :-)
دوستان من توی اکتیویتی واسه بعضی از رویدادها صدا گذاشتم، بدون مشکل هم اجرا میشن
مشکل وقتی پیش میاد که کاربر بعد از تموم کردن مرحله بخواد اون مرحله رو دوباره تکرار کنه !!! هیچ مشکلی نیست فقط صداها دیگه پخش نمیشن
با کد زیر اکتیویتی رو ریلود میکنم :
// Intent intent = getIntent();
// finish();
// startActivity(intent);
this.recreate();
تشکر
نقل قول: عدم پخش صدا بعد از ریلود کردن اکتیویتی
دوستان کسی نمیدونه مشکل از کجاس ؟
این کلاس پخش صداس :
public class MusicManager {
private MediaPlayer mediaPlayer;
private static MusicManager manager = null;
public static MusicManager getInstance(){
if(manager == null){
manager = new MusicManager ();
}
return manager;
}
public void initMediaPlayer(Context context, int musicId, float lVolume, float rVolume, boolean looping){
mediaPlayer = MediaPlayer.create(context, musicId);
mediaPlayer.setVolume(lVolume, rVolume);
mediaPlayer.setLooping(looping);
}
// public void onCompleted(){
// mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
// @Override
// public void onCompletion(MediaPlayer mp) {
// mediaPlayer.stop();
// }
// });
// }
public void startPlaying(){
mediaPlayer.start();
}
public void stopPlaying(){
mediaPlayer.stop();
}
}
اینم توی اکتیویتی :
private void playMusic() {
MusicManager.getInstance().initMediaPlayer(this, R.raw.music, 40, 40, true);
MusicManager.getInstance().startPlaying();
}
الان وقتی وارد اکتیویتی بعدی هم بشی دیگه صداها پخش نمیشن !!!
نقل قول: عدم پخش صدا بعد از ریلود کردن اکتیویتی
دوستان مشکل با این تیکه کد حل شد (مشخص هم هست چیه دیگه)
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.stop();
mp.reset();
}
});