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