بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
حامی 12 سال پیش
آخرین تغییر: 11 سال پیش

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

نظرات

MEHDI007 11 سال پیش
شاید این لینک به درد بخوره نمی دونم برو ببین به کارت میاد یا نهhttp://answers.uncocoder.com/question/4952

پاسخ‌ها 6

محمد مقصودی 12 سال پیش

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

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

تنها کاری که شما باید انجام بدید اینه که 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 12 سال پیش

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

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

 MediaPlayer.create(ActivityMain.this, R.drawable.music).start();

نظرات

Ghost 11 سال پیش
منم یه مشکل اینجوری دارم فق نمیدونم این کدی که Criss جان دادند رو کجا کپی کنم ! دوستان عزیزی که میدونند لطفا راهنمایی کنند ! میخوام وقتی پروژه باز شد تا 5 ثانیه یه موزیک پخش شه ؟
Ghost 11 سال پیش
پس چرا این تاپیک اینقدر رفت پایین ؟ لطفا یکی کمک کنه !
Criss 11 سال پیش

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



 

 

نظرات

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

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

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

نظرات

ajn91 11 سال پیش
row نه raw
ایوب شمسی 11 سال پیش
درستش raw هست فقط شایان جان باید زیرمجموعه پوشه ی res باشه
Ghost 11 سال پیش

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

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

نظرات

omidronaldoo 11 سال پیش

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

نظرات


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