我正在使用 SeekBar 来显示音频文件的进度并寻求特定时间。为了更新,我使用了一个 Runnable,它每秒左右在 MediaPlayer 上调用 getCurrentPosition()。每次发生这种情况时,音频都会出现少量延迟。由于我经常调用它,所以在演奏某些东西时我会变得非常明显的口吃。如果相关,我使用的是 setAudioStreamType(AudioManager.STREAM_MUSIC),文件格式是 mp4,带有 AAC 音频(无视频),我使用的是 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);
}
};