我正在使用Camera2 api製作Android應用程序。Android Camera2 api,在旅途中快速交換相機
我希望能夠在正面和背面相機之間切換,但無論如何嘗試實現它,都需要花費很多時間。
之後我明白,你不能同時打開兩個相機(我也試過),所以你必須在打開第二個之前停止第一個。
問題是我需要1.5秒來停止第一臺相機。
例如Snapchat如何設法在幾百毫秒內交換攝像機?
我正在使用的代碼是從谷歌camera2basic可以在這裏找到:
我添加了一個簡單的方法來防止相機:
public void stopCamera(){
Log.i("yoyo","Stopcamera() begin");
mCameraDevice.close();
//stopBackgroundThread();
Log.i("yoyo","Stopcamera() end");
}
Android監視器:
08-01 15:13:01.478 10020-10020/com.example.android.camera2basic I/YOYO:Stopcamera()開始 08-01 15:13:02.852 10020-10020/com。示例.android.camera2basic I/yoyo:Stopcamera()結束 08-01 15:13:02.853 10020-10020/com.example.android.camera2basic I /編舞:跳過81幀!應用程序可能在其主線程上做了太多工作。 08-01 15:13:02.855 10020-10207/com.example.android.camera2basic I/YOYO:Cameradevice - onClosed()運行回調
-UPDATE 07 8 2017-
看來,camera2 api只需要更長的時間來關閉比舊的相機api。
我試着用舊的相機API,我達到了與snapchat/instagram相同的速度,所以我猜他們正在使用舊的相機API。
某些設備[支持](https://stackoverflow.com/questions/11419940/using-both-front-and-back-cameras-simultaneously-android)上兩個攝像機同時操作;那麼,切換可能是即時的。其他設備可能會有與camera2實現(特別是如果相機特性報告[傳統](https://developer.android.com/reference/android/hardware/camera2/CameraMetadata.html#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY)支持水平),但更多的時候棄用的Camera API速度較慢。 –
是的,我覺得camera2 api比較慢,這似乎很奇怪。我嘗試從Play商店下載一大堆camera2應用程序,並且它們在切換相機之間似乎都有1.5秒的滯後時間。我用來進行測試的手機是銀河s7 –
不應該很難找到哪個相機API instagram正在使用。通常你可以在logcat中看到跟蹤。如果他們選擇基於A/B測試的每種設備型號,我都不會感到驚訝。 –