انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حرکت متن با صوت (برنامه نویسی اندروید)

حرکت متن با صوت (برنامه نویسی اندروید)

#6
سلام دوستان
اگه کسی تجربه ای در این زمینه داره لطفا به اشتراک بگذاره .
من طبق راهنمایی دوستمون یه سری داده اضافی تو بانک اطلاعاتم که Sqlite  هستش شامل زمان سپری شده هر بخش از دعا که خونده میشه را ایجاد کردم. بعد کدهای لازم را برای نمایش دعای مورد نظرو اجرای mediaplayer  نوشتم. نمایش متن و کل زمان فایل صوتی و زمان سپری شده به راحتی در برنامه نمایش داده میشه . اما برای اینکه زمان سپری شده از پخش فایل صوتی با داده اضافی ایجاد شده در بانک مقایسه بشه تا متن مورد نظر نمایش داده بشه یا Listview به صورت اتوماتیک حرکت بکنه مشکل پیدا کردم. زمان سپری شده فقط یک بار و در زمان کلیک روی کلید play  با داده های من مقایسه میشه در صورتیکه من نیاز دارم مرتب زمان سپری شده با اون داده ها مقایسه بشه و در صورت درست بودن شرط کاری ( نمایش متن ) انجام بشه. تو اینترنت هم خیلی جستجو کردم حتی در سایتهای خارجی در حد توان ولی به نتیجه نرسیدم . در مرحله بعد از Runnable UpdateSongTime استفاده کردم که برای نمایش کل زمان و زمان سپری شده استفاده میکردم . ولی به نتیجه نرسیدم. چون متغیر بدست اومده CharSequence هستش و هر کاری کردم که به String  و بعدش Integer تبدیلش کنم و اون شرطم را باهاش مقایسه کنم نشد که نشد. در مرحله بعد اومدم از روش CountDownTimer اجرای یه سری کد پس از گذشت زمان مشخص استفاده کردم . که متاسفانه به نتیجه نرسید. در مرحله بعد اومدم از آرایه برای ذخیره زمان سپری شده در هر ثانیه استفاده کردم که اونم جواب نداد. نمونه کدم را براتون میزارم دوستان استاد یه نظری بدن و در صورت امکان یه نمونه کد بزارند تا مشکل حل بشه.

کد پی‌اچ‌پی:
@Override
    public void onClick
(View view) {
 
       switch (view.getId()) {
 
           case R.id.play_button:
 
               mediaPlayer.start();

 
               finalTime mediaPlayer.getDuration();
 
               if (oneTimeOnly == 0) {
 
                   seek_bar.setMax((int) finalTime);
 
                   oneTimeOnly 1;
 
               }
 
               tx4.setText(String.format("%02d : %02d",
 
                       TimeUnit.MILLISECONDS.toMinutes((longfinalTime),
 
                       TimeUnit.MILLISECONDS.toSeconds((longfinalTime) -
 
                               TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((longfinalTime)))
 
               );
 
               seek_bar.setProgress((int) startTime);
 
               myHandler.postDelayed(UpdateSongTime100);

 
               db.open();
 
               int s db.count("tbl1""time");
 
               mytime = new Integer[s];
 
               for (int i 0si++) {
 
                   mytime[i] = (db.Time_display("tbl1"i));
 
                   st String.valueOf(mytime[i]);
 
                   st2 Integer.parseInt(st);

 
                   if (startTime == st2 ){
 
                       Toast.makeText(getApplicationContext(), (String.valueOf("Yes")), Toast.LENGTH_LONG).show();
 
                   }else {
 
                       Toast.makeText(getApplicationContext(), (String.valueOf(tt)), Toast.LENGTH_LONG).show();
 
                   }
 
               }
 
               db.close();

 
              // new CountDownTimer(2000,1000){
 
                  // @Override
 
                  // public void onTick(long millisUntilFinished){}

 
                  // @Override
 
                   //public void onFinish(){

 
                      // your code

 
                  // }
 
              // }.start();

 
               break;
 
           case R.id.pause_button:
 
               mediaPlayer.pause();
 
       }
 
   }


 
   private Runnable UpdateSongTime = new Runnable() {
 
       public void run() {

 
           startTime mediaPlayer.getCurrentPosition();
 
           tx1.setText(String.valueOf( ((longstartTime)));
 
           ttt = (tx1.getText().toString());
 
           tt Integer.parseInt(ttt);

 
           tx3.setText(String.format("%02d : %02d / ",
 
                   TimeUnit.MILLISECONDS.toMinutes((longstartTime),
 
                   TimeUnit.MILLISECONDS.toSeconds((longstartTime)-
 
                           TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((longstartTime)))
 
           );
 
           seek_bar.setProgress((int) startTime);
 
           myHandler.postDelayed(this100);

 
       }
 
   }; 
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پیام‌های این موضوع
حرکت متن با صوت (برنامه نویسی اندروید) - توسط af94 - ۱۳۹۴/۱۱/۰۱, ۰۶:۵۴ ب.ظ
RE: حرکت متن با صوت - توسط mahdi10539 - ۱۳۹۴/۱۱/۰۲, ۰۴:۰۸ ق.ظ
RE: حرکت متن با صوت (برنامه نویسی اندروید) - توسط Ezzat3 - ۱۳۹۵/۱۲/۲۵, ۰۷:۴۱ ق.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان