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

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

مدیریت گفتگو
morteza1366 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام دوستان
یک 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();
}

نظرات

morteza1366 10 سال پیش
سلام دوستان کسی میتونه راهنمایی کنه؟ ممنون
کاشی زاده 10 سال پیش
باید برای seekbar مثل progressbar محاسباتی رو انجام بدید تا درصد پیشرفتش نسبت به زمان پخش صدا مشخص بشه ، وقتی زمانش مشخص شد کافی در متد chnage که مربوط به سیک بار هست کدی که برای حالت دستی نوشتید رو اجرا کنید .
morteza1366 10 سال پیش
ممنون آقای کاشی زاده از راهنمایی تون

هنوز پاسخی ثبت نشده است


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