我有一个播放/录制样本的音频应用程序。我在用户界面上放了一个进度条,但是当播放样本时,进度条不会移动或似乎随着样本增加。我如何让它移动?
mProgress = (ProgressBar) findViewById(R.id.progressBar1);
// final long trackDuration = (musicLength/44100)*1000; // track duration in millisec
// Start lengthy operation in a background thread
new Thread(new Runnable() {
public void run() {
//Log.i("music length = ", trackDuration+"");
while (mProgressStatus < musicLength) {
mProgressStatus = audioTrack.write(music, 0, musicLength);
// Update the progress bar
mHandler.post(new Runnable() {
public void run() {
mProgress.setProgress(mProgressStatus);
}
});
}
}
}).start();
最佳答案
推荐使用AsyncTask
代替杂耍线程和处理程序。它包含所需的线程和处理程序方法。 onProgressUpdate
是在 UI 线程中调用的(在每次 publishProgress
调用之后),因此它可以成功更新您的进度条。
关于android - 进度条不动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127210/