Android ProgressBar setProgress()更新导致Camera Preview中的帧丢失

时间:2015-04-24 12:42:33

标签: android performance android-handler

我的布局包括顶部的摄像头预览和下面的进度条。

进度条负责更新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;
        }
    }
};

1 个答案:

答案 0 :(得分:1)

您是否已尝试使用Camera.PreviewCallback并只更新进度条?