Tôi có một số SeekBar
, nó hiển thị chính xác tiến trình MediaPlayer
. Tuy nhiên, tôi gặp khó khăn khi tìm kiếm - nếu tôi tìm hộp cuộn ở đâu đó, nó chỉ trả về vị trí mà tập tin âm thanh đang phát.Android SeekBar để kiểm soát tiến trình MediaPlayer
public class EntityPageActivity extends Activity implements Runnable, OnClickListener, OnSeekBarChangeListener{
private SeekBar seekBar;
private Button startMedia;
private Button pauseMedia;
private MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.entity_page);
AudioControl();
}
public void AudioControl(){
seekBar = (SeekBar) findViewById(R.id.seekBar);
startMedia = (Button) findViewById(R.id.play);
pauseMedia = (Button) findViewById(R.id.pause);
startMedia.setOnClickListener(this);
pauseMedia.setOnClickListener(this);
}
public void run() {
int currentPosition= 0;
int total = mp.getDuration();
while (mp!=null && currentPosition<total) {
try {
Thread.sleep(1000);
currentPosition= mp.getCurrentPosition();
} catch (InterruptedException e) {
return;
} catch (Exception e) {
return;
}
seekBar.setProgress(currentPosition);
}
}
public void onClick(View v) {
if (v.equals(startMedia)) {
if (mp != null && mp.isPlaying()) return;
if(seekBar.getProgress() > 0) {
mp.start();
return;
}
mp = MediaPlayer.create(EntityPageActivity.this, R.raw.gl1);
mp.start();
seekBar.setProgress(0);
seekBar.setMax(mp.getDuration());
new Thread(this).start();
}
if (v.equals(pauseMedia) && mp!=null) {
mp.pause();
}
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser) mp.seekTo(progress);
}
}
Như vậy, onProgressChanged
là không đủ để cho phép SeekBar
để kiểm soát MediaPlayer
?
Tôi nên thêm/sửa điều gì để cho phép tìm kiếm?
Cảm ơn
CẬP NHẬT
tôi phát hiện ra rằng onProgressChanged
không bao giờ được gọi bởi một số lý do. Tuy nhiên tôi không thể tìm ra lý do tại sao
@llya Tôi có trình phát đa phương tiện nhưng phát bằng video và Hoạt động tốt, tôi có thể trợ giúp với bạn không? –
Tôi nghĩ bạn biết rõ hơn bạn có thể giúp hay không) Nếu bạn cho rằng bạn biết cách quyết định vấn đề thì hãy thử trả lời –
xem câu trả lời của tôi .............. –