2013-04-30 37 views
0

我想製作一個應用程序,該應用程序每0.1秒拍攝一張照片,因此我製作了一張AsyncTask,我定期執行該應用程序。問題在於,預覽變得非常不連貫,因爲在拍攝每張照片後它會停止一段時間。這是一張我的本錢:如何讓Android相機預覽更輕鬆?

public class Photo extends AsyncTask<Void, String, Boolean> { 

    @Override 
    protected Boolean doInBackground(Void... params) { 
     try { 
      takePhoto(); 
     } catch (Exception e) { 
      onError(); 
     } 
     return true; 

    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 


    } 

    @Override 
    protected void onPostExecute(Boolean result) { 
     super.onPostExecute(result); 

    } 

} 


public void takePhoto() { 

    PictureCallback mPicture = new PictureCallback() { 
     public void onPictureTaken(byte[] data, Camera camera) { 
      mCamera.startPreview(); 
      mPreview.bringToFront(); 


     } 
    }; 

    mCamera.takePicture(null,null, mPicture); 

} 

此的AsyncTask拍攝照片exactlz如預期,但預覽是沒有用的,因爲它是非常不穩定。我也嘗試在ShutterCallback開始預覽,但它只會導致appcrash。

+0

我不確定你實際上可以做些什麼。這很可能與硬件有關。你有沒有想過捕捉視頻,並與個別框架巧妙地做一些事情?您需要強制視頻去隔行。只是一個想法。 – marcantonio 2013-04-30 14:11:45

回答

1

我想要一個應用程序,這需要圖片每0.1秒

很少有手機都將支持這種頻繁拍照。

預覽變得非常不連貫,因爲它在拍攝每張照片

AFAIK後停止了一段時間,這是不可避免的。

如果速度非常關鍵,您需要限制自己使用setPreviewCallbackWithBuffer()Camera.PreviewCallback來處理預覽幀。

+0

好的,我可以用較少的頻率進行拍攝,甚至可能是1秒鐘,我一定會按照你的建議嘗試setPreviewCallbackWithBuffer()和Camera.PreviewCallback。謝謝 ! – slezadav 2013-04-30 15:39:02