1
最初,我有一個MediaPlayer mPlayers播放/暫停/停止我的音頻文件。現在,我正在爲我的媒體添加一個搜索欄。我嘗試使用線程,這就是我想出了:音頻seekBar線程問題?
在的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。
您對我的線索有何改進建議?我做對了嗎?
謝謝。看起來'fromUser'變量需要檢查。現在效果很好。 – iTurki