我正在做一個相機項目,在拍攝一張照片後,相機凍結,您必須完成活動並再次調用以拍攝另一張照片,我如何才能將照片凍結爲1 -2秒,然後再用表面視圖再次拍攝相機。視頻相同我正在使用媒體記錄器,視頻按停止視頻保存和屏幕仍然活着,但我不能再次視頻我不得不重新開始活動?拍攝一張照片後,Android相機凍結
有人有解決方案嗎?
我正在做一個相機項目,在拍攝一張照片後,相機凍結,您必須完成活動並再次調用以拍攝另一張照片,我如何才能將照片凍結爲1 -2秒,然後再用表面視圖再次拍攝相機。視頻相同我正在使用媒體記錄器,視頻按停止視頻保存和屏幕仍然活着,但我不能再次視頻我不得不重新開始活動?拍攝一張照片後,Android相機凍結
有人有解決方案嗎?
在後臺執行任何圖像處理AsyncTask
。這將允許您的UI活動繼續並拍攝另一張照片。
編輯:我無法刪除接受的答案,所以請參閱下面的stoefin的答案。在爲他拍攝下一張照片之前打電話camera.startPreview()
。
這不是爲什麼相機凍結 - stoefln的答案是正確的;預覽需要重新啓動。 – elijah 2012-01-31 00:32:12
您可以使用Camera API直接編寫自己的Activity來完成您描述的功能,而無需使用手機上現有相機應用定義的活動。相機類記錄在這裏:http://developer.android.com/reference/android/hardware/Camera.html
我找到了解決方案:拍攝照片後,預覽顯示將停止。要拍攝更多照片,請先撥打camera.startPreview()
。
相機被凍結,因爲你沒有重新啓動相機的預覽,因此通過捕捉圖像,你應該停止預覽並再次啓動它後調用camera.startpreview()
重新啓動它。
mCamera.stopPreview();
mCamera.startPreview();
它會正常工作。
即使我這樣做,相機無法打開。如果你幫助我,我會非常感激! https://stackoverflow.com/questions/47483990/can-only-open-camera-once – 2017-11-25 17:06:14
camera.startpreview();答案沒有對我的情況下工作,但下面的代碼解決了這個問題對我來說,希望能夠幫助別人too.I使用一個線程來延遲關閉和相機的開啓相片是由500毫秒
private void start_camera() {
try {
camera = Camera.open();
// camera.lock();
} catch (RuntimeException e) {
Log.e(tag, "init_camera: " + e);
return;
}
Camera.Parameters param = camera.getParameters();
param = camera.getParameters();
Camera.Size size = param.getSupportedPreviewSizes().get(0);
param.setPreviewSize(size.width, size.height);
camera.setParameters(param);
try {
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
previewRunning = true;
} catch (Exception e) {
Log.e(tag, "init_camera: " + e);
return;
}}
private void captureImage() {
camera.takePicture(shutterCallback,null,jpegCallback);
Thread restart_preview=new Thread(){public void run(){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
camera.release();
camera=null;
start_camera();
}};
restart_preview.start();}
抓獲後能你展示一些代碼plz? – PedroAGSantos 2011-05-26 13:43:11
@subspider你使用星系來檢查相機功能嗎? – includeMe 2011-05-26 14:05:36
這裏同樣的問題。 @dsc是啊我正在使用銀河s – stoefln 2011-10-10 14:57:40