您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
解決camera2使用ImageReader預覽時出現卡頓情況
发布时间:2022-04-04 23:24:30编辑:雪饮阅读()
在安卓的android.hardware.camera2的api實現預覽時,我之前做了一個自拍(CameraCharacteristics.LENS_FACING_BACK)攝像頭的預覽功能。
那麽做這個預覽功能時候當時是看到功能是正常的,當時本來是要推流的,後來推流処的代碼注釋了,順道注釋了在setOnImageAvailableListener方法所接收的參數(實際為一個對象(是ImageReader.OnImageAvailableListener的實例))的onImageAvailable覆寫方法中的這個語句:
Image image = reader.acquireLatestImage();
if (image == null) {
return;
}
if (image == null) {
return;
}
這個語句是很重要的,就是說在onImageAvailable時候就要趕緊消費image,否則图片超过缓存,就会卡住preview的展示。
那麽消費后同樣也要趕緊關閉image
之前就是因爲這兩個不小心注釋了導致的卡頓現象,logCat中的表現為CameraDevice.StateCallback的回調onError方法中的第二個參數是一個int類型的錯誤碼,那麽表現為返回值為4,偶爾還有返回值為3的時候。android.hardware.camera2包中的StateCallback類的靜態屬性ERROR_CAMERA_DEVICE就是值為4
android.hardware.camera2包中的StateCallback類的靜態屬性ERROR_CAMERA_DISABLED就是值為3
這次的bug雖然是馬虎導致的,但是也算是一次提高了。
关键字词:camera2,安卓,ImageReader,卡頓