بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
رنگی کردن متن نوشته ها در زمان پخش آهنگ
سلام دوستان
یک 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 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .