У меня проблема с большим пальцем вставки, хотя я добавил все необходимые коды для его работы. все же большой размер указателя не воспроизводится из точки, перетаскиваемой пользователем. вместо этого большой палец позиционировал себя обратно к точке, в которой он играл в последний раз. Любая помощь будет оценена.Seekbar не играет с той точки, где он перетаскивается пользователем
plus = (ImageButton) findViewById(R.id.imageButton2);
minus = (ImageButton) findViewById(R.id.imageButton4);
player = MediaPlayer.create(this, R.raw.songnames);
player.setLooping(false);
im = (ImageButton) this.findViewById(R.id.imageButton3);
seekbar = (SeekBar) findViewById(R.id.mantraProgressBar);
seekbar.setVisibility(ProgressBar.VISIBLE);
seekbar.setProgress(0);
seekbar.setMax(player.getDuration());
new Thread(this).start();
im.setOnClickListener(this);
player.start();
im.setImageResource(R.drawable.pause_tran);
Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show();
plus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int cu = player.getCurrentPosition();
player.seekTo(cu - 5000);
}
});
minus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int cu = player.getCurrentPosition();
player.seekTo(cu + 5000);
}
});
}
@Override
public void onClick(View arg0) {
if (arg0.getId() == R.id.imageButton3) {
if (player.isPlaying()) {
player.pause();
Toast.makeText(this, notPlaying, Toast.LENGTH_LONG).show();
ImageButton img1 = (ImageButton) this.findViewById(R.id.imageButton3);
img1.setImageResource(R.drawable.play_tran);
} else {
player.start();
Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show();
ImageButton img1 = (ImageButton) this.findViewById(R.id.imageButton3);
img1.setImageResource(R.drawable.pause_tran);
}
}
}
@Override
public void run() {
int currentPosition = 0;
String s;
int total = player.getDuration();
while (player != null && currentPosition < total) {
try {
Thread.sleep(1000);
currentPosition = player.getCurrentPosition();
} catch (InterruptedException e) {
return;
} catch (Exception e) {
return;
}
seekbar.setProgress(currentPosition);
}
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
player.seekTo(progress);
seekbar.setProgress(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
}
Возможная причина: Вы устанавливаете максимальный прогресс в панели поиска с помощью "seekbar.setMax (player.getDuration());" и при щелчке по плюсам/минусом вы устанавливаете новую позицию поиска, используя «player.seekTo (cu + 5000);/player.seekTo (cu - 5000);». Вы должны добавить или вычесть позицию в соответствии с максимальным прогрессом, который вы задали раньше. –
Кажется, что проблема связана с этими кнопками. хотя я пытался заставить его работать, удаляя эти кнопки. тем не менее сохраняется проблема поиска. Пожалуйста. Пожалуйста. Помогите. Я хочу, чтобы он работал как можно скорее. чтобы я мог представить его вовремя. – Sam
@ Попробуйте этот плеер.seekTo (прогресс * 1000); in onProgressChanged – Nisarg