Сбой предварительного просмотра камеры на некоторых камерахAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Сбой предварительного просмотра камеры на некоторых камерах

Сообщение Anonymous »

Я разрабатываю приложение камеры, и на данный момент я предварительно просмотр всех камер. Я могу войти в систему до 8 идентификаторов камеры.
Прогресс: я могу переключаться между камерами и увидеть предварительный просмотр от идентификатора камеры 0 на идентификатор камеры 5. С помощью максимального разрешения, которое поддерживается для этого датчика.
Проблема: Итак, прямо сейчас идентификатор камеры 6 и 7 вызывает ошибку: < /p>
GraphicBufferAllocator E Failed to allocate (4000 x 3000) layerCount 1 format 34 usage 100: 1
BufferQueueProducer E [SurfaceTexture-0-20260-0](id:4f2400000001,api:4,p:1664,c:20260) dequeueBuffer: createGraphicBuffer failed
BufferQueueProducer E [SurfaceTexture-0-20260-0](id:4f2400000001,api:4,p:1664,c:20260) requestBuffer: slot 0 is not owned by the producer (state = FREE)
< /code>
Теперь дело в том, что этот 4000x3000 работает для другого идентификатора камеры 4. Поэтому я не могу понять, почему это сбои на идентификаторе камеры 6 и 7.
Примечание: приложение состоит в том, чтобы предоставить высокое разрешение и FP от датчика, вместо этого предварительно выкомпированные, чтобы получить полный потенциал от устройства; Для создания контента. < /p>
Это функция, вызванная при запуске предварительного просмотра: < /p>
fun chooseAndApplyPreviewSize(cameraId: String?, currentResolution: Resolution?): android.util.Size {
val camId = cameraId ?: return fallback()
val supported = ResolutionManager.getSupportedResolutions(context, camId)
if (supported.isEmpty()) {
Log.w(TAG, "No supported resolutions discovered for camera $camId, using fallback")
return fallback()
}

// Logging sample sizes
try {
val sizesOnly = supported.map { "${it.width}x${it.height}" }.distinct()
Log.d(TAG, "Camera $camId supported sizes (sample): ${sizesOnly.take(20)} (total ${sizesOnly.size})")
} catch (_: Exception) { /* ignore */ }

val chosenRes = currentResolution?.let { cr ->
supported.firstOrNull { it.width == cr.width && it.height == cr.height && it.fps == cr.fps }
} ?: ResolutionManager.selectDefault(supported) ?: supported.first()

val chosenSize = android.util.Size(chosenRes.width, chosenRes.height)

// If same as last applied -> return quickly
if (lastAppliedPreviewSize == chosenSize && previewSurface != null) {
Log.d(TAG, "chooseAndApplyPreviewSize: chosen size unchanged ${chosenSize.width}x${chosenSize.height}")
return chosenSize
}

Log.d(TAG, "chooseAndApplyPreviewSize: reconfigure to ${chosenSize.width}x${chosenSize.height}")

// reconfigure: set flag so callers can avoid racing operations
isReconfiguringPreview = true

// Apply buffer size and recreate previewSurface safely
val st: SurfaceTexture? = textureView.surfaceTexture
if (st != null) {
try {
st.setDefaultBufferSize(chosenSize.width, chosenSize.height)
// release old preview surface if present
try { previewSurface?.release() } catch (_: Exception) {}
previewSurface = Surface(st)
Log.d(TAG, "Applied SurfaceTexture buffer size = ${chosenSize.width}x${chosenSize.height} for camera $camId")
} catch (e: Exception) {
Log.w(TAG, "Failed to set default buffer size: ${e.message}")
}
} else {
Log.w(TAG, "SurfaceTexture is null when trying to set buffer size")
}

lastAppliedPreviewSize = chosenSize
isReconfiguringPreview = false
return chosenSize
}
< /code>
И это журналы из камер: < /p>
CameraLogger I ----- Camera ID: 0 -----
CameraLogger I Lens facing: BACK
CameraLogger I Physical size: 6.4 x 4.8 mm
CameraLogger I Sensor orientation: 90 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (18):
CameraLogger I 4000 x 3000
CameraLogger I 4000 x 2250
CameraLogger I 3840 x 2160
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (6):
CameraLogger I 14 - 15
CameraLogger I 15 - 15
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 14 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1
CameraController D Camera ID=1 is accessible
CameraLogger I ----- Camera ID: 1 -----
CameraLogger I Lens facing: FRONT
CameraLogger I Physical size: 4.1472 x 3.104 mm
CameraLogger I Sensor orientation: 270 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (17):
CameraLogger I 2592 x 1940
CameraLogger I 2592 x 1458
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (5):
CameraLogger I 15 - 15
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 10 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1
CameraController D Camera ID=2 is accessible
CameraLogger I ----- Camera ID: 2 -----
CameraLogger I Lens facing: BACK
CameraLogger I Physical size: 3.6736 x 2.75968 mm
CameraLogger I Sensor orientation: 90 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (17):
CameraLogger I 3280 x 2464
CameraLogger I 3280 x 1844
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (5):
CameraLogger I 15 - 15
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 14 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1
CameraController D Camera ID=3 is accessible
CameraLogger I ----- Camera ID: 3 -----
CameraLogger I Lens facing: BACK
CameraLogger I Physical size: 2.90304 x 2.17728 mm
CameraLogger I Sensor orientation: 90 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (17):
CameraLogger I 2592 x 1944
CameraLogger I 2592 x 1458
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (4):
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 16 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1
CameraController D Camera ID=4 is accessible
CameraLogger I ----- Camera ID: 4 -----
CameraLogger I Lens facing: BACK
CameraLogger I Physical size: 6.4 x 4.8 mm
CameraLogger I Sensor orientation: 90 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (20):
CameraLogger I 4000 x 3000
CameraLogger I 4000 x 2250
CameraLogger I 3840 x 2160
CameraLogger I 3280 x 2464
CameraLogger I 3280 x 1844
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (6):
CameraLogger I 14 - 15
CameraLogger I 15 - 15
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 14 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1
CameraController D Camera ID=5 is accessible
CameraLogger I ----- Camera ID: 5 -----
CameraLogger I Lens facing: BACK
CameraLogger I Physical size: 6.4 x 4.8 mm
CameraLogger I Sensor orientation: 90 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (20):
CameraLogger I 4000 x 3000
CameraLogger I 4000 x 2250
CameraLogger I 3840 x 2160
CameraLogger I 3280 x 2464
CameraLogger I 3280 x 1844
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (6):
CameraLogger I 14 - 15
CameraLogger I 15 - 15
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 14 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1
CameraController D Camera ID=6 is accessible
CameraLogger I ----- Camera ID: 6 -----
CameraLogger I Lens facing: BACK
CameraLogger I Physical size: 6.4 x 4.8 mm
CameraLogger I Sensor orientation: 90 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (20):
CameraLogger I 4000 x 3000
CameraLogger I 4000 x 2250
CameraLogger I 3840 x 2160
CameraLogger I 3280 x 2464
CameraLogger I 3280 x 1844
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (6):
CameraLogger I 14 - 15
CameraLogger I 15 - 15
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 14 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1
CameraController D Camera ID=7 is accessible
CameraLogger I ----- Camera ID: 7 -----
CameraLogger I Lens facing: FRONT
CameraLogger I Physical size: 4.1472 x 3.104 mm
CameraLogger I Sensor orientation: 270 degrees
CameraLogger I White level: 1023
CameraLogger I Hardware level: LEVEL_3
CameraLogger I Supported preview sizes (17):
CameraLogger I 2592 x 1940
CameraLogger I 2592 x 1458
CameraLogger I 1920 x 1440
CameraLogger I 2400 x 1080
CameraLogger I 1920 x 1080
CameraLogger I 1600 x 1200
CameraLogger I 1440 x 1080
CameraLogger I 1280 x 960
CameraLogger I 1600 x 720
CameraLogger I 1280 x 720
CameraLogger I 800 x 600
CameraLogger I 720 x 480
CameraLogger I 640 x 480
CameraLogger I 640 x 360
CameraLogger I 352 x 288
CameraLogger I 320 x 240
CameraLogger I 176 x 144
CameraLogger I Supported FPS ranges (5):
CameraLogger I 15 - 15
CameraLogger I 24 - 24
CameraLogger I 25 - 25
CameraLogger I 10 - 30
CameraLogger I 30 - 30
CameraLogger I Timestamp source: 1


Подробнее здесь: https://stackoverflow.com/questions/797 ... me-cameras
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»