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

آپدیت نشدن SeekBar در میدیا پلیر

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

متاسفانه سیک باری که برای میدیا پلیرم تعریف کردم آپدیت نمیشه و سر جای خودش تکون نمی خوره مشکل از چیه؟

 public class Player extends Activity implements View.OnClickListener {

MediaPlayer mp;
ArrayList<String> myList;
SeekBar sb;
int position;
Thread updateSb;
ImageView btn, btPlaye, btStop;
private SeekBar seekBar;
private final Handler handler = new Handler();


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.player);
mp = new MediaPlayer();
btPlaye = (ImageView) findViewById(R.id.imgPlaye);
btStop = (ImageView) findViewById(R.id.imgStop);
seekBar = (SeekBar) findViewById(R.id.seek_bar);
btPlaye.setOnClickListener(this);
btStop.setOnClickListener(this);
Intent i = getIntent();
Bundle b = i.getExtras();
myList = (ArrayList) b.getParcelableArrayList("songList");
position = b.getInt("pos", 0);

seekBar.setMax(mp.getDuration());
seekBar.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
seekChange(v);
return false;
}
});

}


private void seekChange(View v) {
if (mp.isPlaying()) {
SeekBar sb = (SeekBar) v;
mp.seekTo(sb.getProgress());
}
}


@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.imgPlaye:
Uri u = Uri.parse(Environment.getExternalStorageDirectory().toString() + "/MohamadMamli/" + myList.get(position).toString());
mp = MediaPlayer.create(getApplicationContext(), u);
mp.start();
seekBar.setProgress(mp.getCurrentPosition());
if (mp.isPlaying()) {
final Runnable notification = new Runnable() {

@Override
public void run() {

seekBar.setProgress(mp.getCurrentPosition());
}
};
handler.postDelayed(notification, 1000);
} else {
mp.pause();
seekBar.setProgress(0);
}
btPlaye.setEnabled(false);
btStop.setEnabled(true);
break;
case R.id.imgStop:
mp.pause();
btPlaye.setEnabled(true);
btStop.setEnabled(false);
break;
}
}
}

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
f-Dehghan  10 سال پیش
0 0

من توی play این کد رو زدم

 myHandler.postDelayed(UpdateSongTime, 100);

و این هم کد UpdateSongTime . چک کنید ببینید براتون جواب میده؟

  private Runnable UpdateSongTime = new Runnable() {

@Override
public void run() {
if (mp != null && mp.isPlaying()) {
startTime = mp.getCurrentPosition();
startTimeField.setText(String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toSeconds((long) startTime) / 60,
TimeUnit.MILLISECONDS.toSeconds((long) startTime) % 60)
);
seekbar.setProgress((int) startTime);
myHandler.postDelayed(this, 100);
}
}
};
0 0
من کد شما رو گذاشتم و مقدار startTime رو مقدار دهی کردم int StartTime = 0; وقتی اجرا می کنم سیک بار 100 درصد می شه (10 سال پیش)
0 0
int startTime = mp.getCurrentPosition(); این طوری تعریف کنید .ببخشید دیر جواب دادم.خوشحالم مشکل حل شد. (10 سال پیش)
پاسخ به سوال 
Shadow  10 سال پیش
+1 0

اینم کد جدید با کد شما

 public class Player extends Activity implements View.OnClickListener {

MediaPlayer mp;
ArrayList<String> myList;
SeekBar sb;
int position;
Thread updateSb;
ImageView btn, btPlaye, btStop;
private SeekBar seekBar;
private final Handler handler = new Handler();
private int startTime = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.player);
mp = new MediaPlayer();
btPlaye = (ImageView) findViewById(R.id.imgPlaye);
btStop = (ImageView) findViewById(R.id.imgStop);
seekBar = (SeekBar) findViewById(R.id.seek_bar);
btPlaye.setOnClickListener(this);
btStop.setOnClickListener(this);
Intent i = getIntent();
Bundle b = i.getExtras();
myList = (ArrayList) b.getParcelableArrayList("songList");
position = b.getInt("pos", 0);

}


@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.imgPlaye:
Uri u = Uri.parse(Environment.getExternalStorageDirectory().toString() + "/MohamadMamli/" + myList.get(position).toString());
mp = MediaPlayer.create(getApplicationContext(), u);
mp.start();
handler.postDelayed(UpdateSongTime, 100);
btPlaye.setEnabled(false);
btStop.setEnabled(true);
break;
case R.id.imgStop:
mp.pause();
btPlaye.setEnabled(true);
btStop.setEnabled(false);
break;
}
}

private Runnable UpdateSongTime = new Runnable() {

@Override
public void run() {
if (mp != null && mp.isPlaying()) {
startTime = mp.getCurrentPosition();
seekBar.setProgress((int) startTime);
handler.postDelayed(this, 100);
}
}
};
}

0 0
حل شد (10 سال پیش)

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