使用onFrameAvailable()在探戈平板电脑上保存或记录图像

时间:2016-07-29 08:40:04

标签: google-project-tango

我是google-project-tango的新手,我想记录Tango的彩色相机图像缓冲区而不是鱼眼相机的图像。我看到henderso共享 - 读取GL缓冲区以保存图像,并修改其代码以记录图像 - 在我们获得任何onFrameAvailable()回调时保持保存每个图像。当我得到onframeavailable回调时,我也尝试锁定缓冲区或使用信号量。但结果看起来像这样 - is it the synchronization problem of GL buffer?

MainActivity实现了TangoCameraScreengrabCallback:

        public void onFrameAvailable(int arg0) {                
            if (mIsRecording){
                tangoCameraPreview.takeSnapShot();
                try {
                    mutex_on_mIsRecording.acquire();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                tangoCameraPreview.onFrameAvailable();
                mutex_on_mIsRecording.release();

            }
        }

tangoCameraPreview.onFrameAvailable()将执行以下操作:

    public void onFrameAvailable() {
        super.onFrameAvailable();
        if(recording) {
            synchronized (intBuffer){
                screenGrabRenderer.grabNextScreen(SCREEN_GRAB_X, SCREEN_GRAB_Y, SCREEN_GRAB_W, SCREEN_GRAB_H, intBuffer);
            }
        }
    }

0 个答案:

没有答案