我的布局包括顶部的摄像头预览和下面的进度条。
进度条负责更新MediaPlayer的进度。 我使用Handler来实现这一点,问题是当我启动媒体播放器时,进度条更新会导致相机预览中出现一些帧丢失。
我需要保持相同的帧速率,最初为~30 fps。
处理程序代码:
protected Handler mHandler = new Handler() {
Runnable runnable = new Runnable() {
@Override
public void run() {
// waveprogress is the ProgressBar
waveProgress.setProgress((mMediaPlayer.getCurrentPosition() * 100) / mMediaPlayer.getDuration());
}
};
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SHOW_PROGRESS:
waveProgress.post(runnable);
sendMessageDelayed(obtainMessage(SHOW_PROGRESS), 350);
break;
}
}
};
答案 0 :(得分:1)
您是否已尝试使用Camera.PreviewCallback并只更新进度条?