Изначально у меня был MediaPlayer mPlayers для воспроизведения / паузы / остановки моего аудиофайла.Теперь я пытаюсь добавить панель поиска для моих медиа.Я попытался использовать Threads, и вот что я придумал:
В onCreate ():
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
mPlayer.seekTo(progress);
}
////........Omitted Code..........\\\\
//At the very end of the method:
seekThread = new Thread(this); //My Activity implements:Runnable
seekThread.start();
Затем я реализовал метод run()
для обновления панели поиска каждые 1 сек.:
public void run() {
try {
while(mPlayer != null){
int currentPosition = mPlayer.getCurrentPosition();
Message msg = new Message();
msg.what = currentPosition;
threadHandler.sendMessage(msg);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private Handler threadHandler = new Handler(){
public void handleMessage(Message msg){
seekBar.setProgress(msg.what);
}
};
Однако в моем HTC Magic звук работает неэффективно.Некоторые слова повторяются.Кажется, что строка поиска постепенно возвращается назад.
Чтобы вы хорошо поняли проблему, скажем так: если в аудио сказано, что: abcdefghijklmn, то это будет так: abccdeffghijjklmnn.
Какие улучшения вы предлагаете моей теме?Я правильно делаю?