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

رنگی کردن متن نوشته ها در زمان پخش آهنگ

morteza1366  10 سال پیش  10 سال پیش
0 0

سلام دوستان
یک seekbar دارم که با پخش شدن فایل صوتی دکمه seekbar حرکت میکنه،یک متن هم دارم.

الان فقط وقتی دکمه seekbar تکون میدم این کار انجام میشه :

به ترتیب در هر زمان مشخص شده پشت زمینه یک قسمت مشخص فایل متنی تغییر رنگ میکنه مثلآ در زمان بین 1 تا 23 ثانیه کاراکتر 1 تا 205 متن پشت زمینه تغییر رنگ میده.

مشکل: می خواهم وقتی seekbar داره حرکت میکنه،طبق زمان هایی که بهش دادم پشت زمینه متن ام تغییر بکنه،چه کدی بنویسم؟
خیلی ممنون

 mediaplayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mediaPlayer) {

seekBar.setMax(mediaplayer.getDuration());
}
});

// ########## 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);
int curPosition = mediaplayer.getCurrentPosition();

int currentSec = (curPosition / 1000);

if (position == 0) {
if (currentSec > 1 && currentSec < 23) {
SpannableString styledString = new SpannableString(EnglishText);
styledString.setSpan(new BackgroundColorSpan(Color.CYAN), 0, 204, 0);
ContentstoryAudio.setText(styledString);

}

if (currentSec > 24 && currentSec < 42) {
SpannableString styledString = new SpannableString(EnglishText);
styledString.setSpan(new BackgroundColorSpan(Color.CYAN), 205, 395, 0);
ContentstoryAudio.setText(styledString);

}
}
}
});

(new Thread(new Runnable() {

@Override
public void run() {

while (mediaplayer.isPlaying()) {

try {
Thread.sleep(1000);

seekBar.setProgress(mediaplayer.getCurrentPosition());

}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

handler.post(new Runnable() {

@Override
public void run() {

}
}
);
}
})).start();
}
0 0
سلام دوستان کسی میتونه راهنمایی کنه؟ ممنون (10 سال پیش)
+1 0
باید برای seekbar مثل progressbar محاسباتی رو انجام بدید تا درصد پیشرفتش نسبت به زمان پخش صدا مشخص بشه ، وقتی زمانش مشخص شد کافی در متد chnage که مربوط به سیک بار هست کدی که برای حالت دستی نوشتید رو اجرا کنید . (10 سال پیش)
0 0
ممنون آقای کاشی زاده از راهنمایی تون (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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