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

پخش یک آهنگ موقع بازشدن یک داستان...

حامی  11 سال پیش  11 سال پیش
+4 0

سلام به همگی اساتید.یه کتاب نوشتم که تشکیل شده از چندتا داستان.(از طریق SQLite Manager).حالا میخوام وقتی روی یکی از این داستانها کلیک شد، یه آهنگ پخش بشه.همین.کسی میدونه چطوری باید این کار رو بکنم؟پسوند فایل صوتی باید چی باشه؟

0 0
شاید این لینک به درد بخوره نمی دونم برو ببین به کارت میاد یا نهhttp://answers.uncocoder.com/question/4952 (11 سال پیش)
 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
محمد مقصودی  11 سال پیش
+4 0

این لینک رو نگاه کن. ساخت موزیک پلیر.

دوست عزیز این همون کدی هستش که آقای نورحسینی داده بودند، فقط همون جوری که توضیح داده بودید این کد برای اینه که بعد از کلیک روی داستان فایل صوتی اجرا بشه و بعد از خارج شدن هم فایل صوتی استاپ بشه و به صورت دستی هیچ دکمه ای نداشته باشه.

تنها کاری که شما باید انجام بدید اینه که 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() که نمونه این متد رو هم در آخر کد براتون گذاشتم.

پاسخ به سوال 
Criss  11 سال پیش
+3 0

موزیک رو توی پوشه drawable بزار و با کد زیر اجرا کن

پسوند هم میتونه Mp3 باشه یا wma

 MediaPlayer.create(ActivityMain.this, R.drawable.music).start();
0 0
منم یه مشکل اینجوری دارم فق نمیدونم این کدی که Criss جان دادند رو کجا کپی کنم ! دوستان عزیزی که میدونند لطفا راهنمایی کنند ! میخوام وقتی پروژه باز شد تا 5 ثانیه یه موزیک پخش شه ؟ (11 سال پیش)
0 0
پس چرا این تاپیک اینقدر رفت پایین ؟ لطفا یکی کمک کنه ! (11 سال پیش)
پاسخ به سوال 
Criss  11 سال پیش
+1 0

کد درون 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);



 

 

0 0
ممنون دوست عزیز که جواب دادید ولی اگه میشه یکم بیشتر توضیح بدید درباره کد ! مثلا کدوم اسم آهنگ هست ؟ مثلاNewActivity3 چی هست و.. ممنون (11 سال پیش)
+2 0
جناب bia2000 بعضی از سوالاتتون واقعا عجولانست.سعی کنید خودتون با مقایسه و بررسی کد به جوابهاتون برسید تا تو ذهنتون تثبیت بشه. NewActivity3 همون اکتیویتی هست که داخلش کد رو قرار دادیم و برای استفاده از Context هست.نام فایل اهنگ هم که مشخصه music هست به ادرس R.raw.music (11 سال پیش)
پاسخ به سوال 
Ghost  11 سال پیش
0 0

در پاسخ به سوالی که در بالا پرسیدم :

من وقتی پوشه row رو می سازم و موزیک رو توش قرار میدم اون فولدر رو نمیشناسه ! چیکار کنم :

0 0
row نه raw (11 سال پیش)
+1 0
درستش raw هست فقط شایان جان باید زیرمجموعه پوشه ی res باشه (11 سال پیش)
پاسخ به سوال 
Ghost  11 سال پیش
0 0

دوستان الان خوب شد ؟

ولی اینکه نمیخونه !

پاسخ به سوال 
omidronaldoo  11 سال پیش
0 0

یه فیلد تو دیتابیست درست کن مثلا dasteh،داستانات رو نام گذاری کن.تو قسمتی که میخوای صوت پخش بشه چن تا if بذار بگو اگه dasteh برابر این باشه این صدا ر پخش کنه.بهترین راهش اینه


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