オーディオ ファイルの進行状況を表示し、特定の時間までシークするために SeekBar を使用しています。更新には、MediaPlayer で毎秒ほど getCurrentPosition() を呼び出す Runnable を使用します。これが発生するたびに、オーディオにわずかな遅延が発生します。私は頻繁に呼び出すので、何かを再生しているときにカクつきが非常に目立ちます。関連する場合は、 setAudioStreamType(AudioManager.STREAM_MUSIC) を使用しており、ファイル形式は AAC オーディオ (ビデオなし) の mp4 で、Android 2.3.4 を使用しています。getCurrentPosition() で良いオーディオを取得する方法はありますか? または、独自の進捗計算を実装する必要がありますか?
ランナブル:
private Runnable mUpdateTask = new Runnable(){
@Override
public void run() {
mSeekBar.setProgress((int) (mPlayer.getCurrentPosition() * 100 / mArrayAdapter.getRecording(mPlayingId).mDuration));
mHandler.postDelayed(mUpdateTask, 999);
}
};