کمک در کار با seekbar

تعرفه تبلیغات در سایت
عنوان عکس
عنوان عکس
عنوان عکس
عنوان عکس
عنوان عکس

آرشیو مطالب

جستجوگر

یافته ها در جستجو

    امکانات وب

    برچسب ها

    سلام دوستان عزیزHeart

    من یه اکتیویتی دارم توش دوتا دکمه داره یکی برا ضبط صدا که میده به اکتیویتی دیگه ای برای ضبط و یه دکمه دارم برای پخش اون صدایی که ضبط شده و یه seekbar هم هست که میخام با پخش این صدا هماهنگ باشه و با عقب و جلو بردن seek bar هم واکنش نشون بده.

    این چیز ساده ایه که seekbar چطور کارکنه و آموزش های خیلی زیادی هم در این سایت و هم در سایت های خارجی هست که خیلی ساده و خوب توضیح دادن اما تمام توضیحات برای دوحالتیه که یا موزیک تو row باشه اجرا شه و یا اینکه از تو حافظه به طور ساده ای پخش و با seekbar هماهنگ میشه.Tongue

    مشکل من اینه که قالب برنامه طوریه که مجبور شدم این  روند بخش و ضبط به طور خواصی باشه که با این وجود نمیشه کد هام رو با اون نمونه کد های seek bar هماهنگ کنم و اونو درستش کنم.Exclamation

    امیدوارم که فهمونده باشم منظورمو...Confused

    حالا برا این که راحت تر فهمیده بشه مشکلم چجوریه کد قسمت پخش  اجرای media رو میزارم که طبق این شرایط کمکم کنید (Heartالبته لطفاHeart) اون seekbar رو درست کنم

    این تکه ای از کد های اون اکتیویتی هست که مربوط به دکمه ضبط و پخش هست پایینش توضیح میدم بیشتر:

    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_fav_qx);
    
            BtnRecord = (ImageButton)findViewById(R.id.record);
            BtnPlay = (ImageButton)findViewById(R.id.play);
            seek = (SeekBar)findViewById(R.id.seekbar);
    
    
            BtnRecord.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    File file = new File(outputFile);
                    if(file.exists()) {
                        Toast.makeText(getApplicationContext(),"قبلا رکورد شده",Toast.LENGTH_SHORT).show();
    
                    }else {
                        Intent i = new Intent(FavQuestionActivity.this, RecordVoicActivity.class);
                        i.putExtra("mor", mor);
                        i.putExtra("id", id);
                        i.putExtra("p", p);
                        i.putExtra("outputFile", outputFile);
                        finish();
                        startActivity(i);
                    }
    
                }
            });
    
    
    
            BtnPlay.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    File file = new File(outputFile);
                    if (file.exists()) {
                        if (pr == 0) {
                            BtnPlay.setImageResource(R.drawable.ic_pause);
                            play(v);
                            pr = 1;
                        } else if (pr == 1) {
                            BtnPlay.setImageResource(R.drawable.ic_play);
                            stopPlay(v);
                            pr = 0;
                        }
                    } else {
                        Toast.makeText(getApplicationContext(),"فایلی رکورد نشده", Toast.LENGTH_SHORT).show();
                    }
                }
            });
    
    
    
    
    
    
    
    
    
        }
    
    
    
    
    
        public void play(View view) {
            try {
                PlayR = new MediaPlayer();
                PlayR.setDataSource(outputFile);
                PlayR.prepare();
                PlayR.start();
    
                Toast.makeText(getApplicationContext(), "Start play the recording...",
                        Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
    
        public void stopPlay(View view) {
            try {
                if (PlayR != null) {
                    PlayR.stop();
                    PlayR.release();
                    PlayR = null;
    
                    Toast.makeText(getApplicationContext(), "Stop playing the recording...",
                            Toast.LENGTH_SHORT).show();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
    }
    
    

    اول بگم که این کد بالا ناقص هست پس به ارور های فرضی که مربوط به ناقص بودن برنامه هست دقت نکنید چون برنامه اصن اروری نداره فقط میخام بدونم چطوری seekbar رو اوکی کنمTongue

    به ضبط صدا کاری نداریم فرض کنید به اون ادرسی که در متغیر outputFile قرار داره صدایی ذخیره شدهBlush

    حالا برای پخش صدا و توقفش دوتا متد ساختم و دوی دوکمه به نحوی این متد هارو فراخانی میکنم
    موقع پخشش میره به متد و اونجا MediaPlayer من new میشه و بهش ادرس صدای ذخیره شده داده میشه

    تو خیلی از کد های مثال seek bar طوری بود که تو oncreat به طور خیلی ساده ای طبق یه موزیک از پیش تایین شده MediaPlayer اجرا و به seekbar طبق متد هایی مقدار دهی میشه.
    اما Undecided تو این قالب برنامه من نمیشه این چیزی رو درست کرد چون بیرون از  oncreat برنامه MediaPlayer اجرا میشه و اونجا هم نمیشه اون متد هارو ساخت و نمیشه کلا هماهنگ کردو اینجور چیزا...

    حالا طبق این شرایط من چطوری seekbar ام رو درست کنم؟Huh

    نویسنده : کاوه محمدزادگان بازدید : 17 تاريخ : يکشنبه 28 شهريور 1395 ساعت: 5:13

    خبرنامه

    عضویت

    نام کاربري :
    رمز عبور :