پخش یک آهنگ موقع بازشدن یک داستان...
سلام به همگی اساتید.یه کتاب نوشتم که تشکیل شده از چندتا داستان.(از طریق SQLite Manager).حالا میخوام وقتی روی یکی از این داستانها کلیک شد، یه آهنگ پخش بشه.همین.کسی میدونه چطوری باید این کار رو بکنم؟پسوند فایل صوتی باید چی باشه؟
این لینک رو نگاه کن. ساخت موزیک پلیر.
دوست عزیز این همون کدی هستش که آقای نورحسینی داده بودند، فقط همون جوری که توضیح داده بودید این کد برای اینه که بعد از کلیک روی داستان فایل صوتی اجرا بشه و بعد از خارج شدن هم فایل صوتی استاپ بشه و به صورت دستی هیچ دکمه ای نداشته باشه.
تنها کاری که شما باید انجام بدید اینه که mediaplayer.start() رو درون خود onCreate قرار بدید. همونجوری که می بینید.
public class ActivityDoa_Salehi extends Activity {
SeekBar seekBar; //اگه سیک بار می خواهید این قسمت رو نگه دارید
MediaPlayer mediaplayer;
//ImageView pause_btn; این دو تا باتن رو لازم ندارید
//ImageView play_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.doa_salehi);
//pause_btn = (ImageView) findViewById(R.id.pause_btn); این دو خط رو هم لازم ندارید
//play_btn = (ImageView) findViewById(R.id.play_btn);
seekBar = (SeekBar) findViewById(R.id.slider);
mediaplayer = MediaPlayer.create(ActivityDoa_Salehi.this, R.raw.salehi);
// ######### az rooye moshakhasate file soti seekbar ro tanzim mikonim...
mediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
seekBar.setMax(mediaplayer.getDuration());
seekBar.postDelayed(onEverySecond, 1000);
}
});
// ########## mediaplayer ro start mikonim
mediaplayer.start();// با این خط مدیا پلیر شما با استارت اکتیویتی فعال می شه
// ############## baraye inke vaghti seekbar ro jabeja mikonid...
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (fromUser) {
// vaghti seek bar ro jabeja mikonim inja ejra mishe...
mediaplayer.seekTo(progress);
}
}
});
//dokmeye pause این لیسنر رو هم نیاز ندارید
/*pause_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaplayer.pause();
}
});
//dokmeye play این لیسنر رو هم نیاز ندارید
play_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mediaplayer.start();
// tanzim e dobareye seekbar bad az inke dobare play kardim
seekBar.setMax(mediaplayer.getDuration());
seekBar.postDelayed(onEverySecond, 1000);
}
});*/
///////////////////////////
} // end of onCreate
/////////////////////////
// in ye joor timer hast ke har sanie yek bar seekbar ro update mikone
private Runnable onEverySecond = new Runnable() {
@Override
public void run() {
if (seekBar != null) {
seekBar.setProgress(mediaplayer.getCurrentPosition());
}
if (mediaplayer.isPlaying()) {
seekBar.postDelayed(onEverySecond, 1000);
}
}
};
@Override
public void onBackPressed() {
super.onBackPressed();
mediaplayer.pause();
}
}
نکته : هر موقع خواستید از اکتیویتی خارج بشید mediaplayer.pause() رو اجرا کنید. اگه با استفاده از Intent خواستید به یک اکتیویتی دیگه برید دقیقا همونجا مدیا پلیر رو استاپ کنید و اگر هم خواستید با دکه back از اکتیویتی خارج شید با override کردن متد onBackPressed() که نمونه این متد رو هم در آخر کد براتون گذاشتم.
موزیک رو توی پوشه drawable بزار و با کد زیر اجرا کن
پسوند هم میتونه Mp3 باشه یا wma
MediaPlayer.create(ActivityMain.this, R.drawable.music).start();
کد درون onCreate بزارید یا در onclicklistener
//ادرس دهی فایل صوتی و ساخت متغیر از جنس مدیا پلایر
MediaPlayer mp=MediaPlayer.create(NewActivity3.this, R.raw.music);
//اجرا شدن صدا
mp.start();
//برای 2 خط بالا بهتر هست که "ترای کتچ" هم تعریف کنید
//استفاده از هندلر برای ایجاد وقفه 5 ثا نیه ایی
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//متوقف شد صدا بعد از 5 ثانیه
mp.stop();
}
}, 5000);
یه فیلد تو دیتابیست درست کن مثلا dasteh،داستانات رو نام گذاری کن.تو قسمتی که میخوای صوت پخش بشه چن تا if بذار بگو اگه dasteh برابر این باشه این صدا ر پخش کنه.بهترین راهش اینه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .

