Двойная камера (спереди + назад одновременно) Поддержка в телефонах Android для окончания приложений или как?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Двойная камера (спереди + назад одновременно) Поддержка в телефонах Android для окончания приложений или как?

Сообщение Anonymous »

Так что у меня есть требование записать как переднюю, так и сзади камеру. У меня даже есть эта функция в приложении камеры моего телефона. Поэтому я подумал, что, может быть, я смогу разработать и применять тоже для достижения этой функциональности. уже используется ». Затем, после небольшого исследования, я познакомился с React-Cniation, не может этого сделать, и мы должны написать собственный код для библиотек Camerax или Camera2. Прилагаемый код для справки. < /P>

Код: Выделить всё

import {
useCameraDevices,
Camera,
useCameraDevice,
useCameraPermission,
} from "react-native-vision-camera";
import { View, Button, Text } from "react-native";
import { useEffect, useState } from "react";

const DualCameraScreen = () => {
const device1 = useCameraDevice("front");
const device2 = useCameraDevice("back");
const { hasPermission, requestPermission } = useCameraPermission();
const [isRecording, setIsRecording] = useState(false);

if (!hasPermission) {
requestPermission();
}

const startRecording = async () => {
setIsRecording(true);
};

return (

{device1 && device2 && (




)}

);
};

export default DualCameraScreen;
< /code>
возвращается в Android Studio (Kotlin), начал разрабатывать то же самое и снова застрял на то же самое, на этот раз с тех пор, как я был в нативном режиме, у меня был доступ к большему количеству журналов, которые Показал мне, что максимально разрешенные камеры телефона - 1.  Код прикреплен ниже: < /p>

 Зависимости < /li>
< /ul>
implementation "androidx.camera:camera-core:1.4.1"
implementation "androidx.camera:camera-camera2:1.4.1"
implementation "androidx.camera:camera-lifecycle:1.4.1"
implementation "androidx.camera:camera-view:1.4.1"
< /code>

 Kotlin File < /li>
< /ul>
class DualCameraActivity : AppCompatActivity() {
private lateinit var backCameraPreview: PreviewView
private lateinit var frontCameraPreview: PreviewView
private var cameraProvider: ProcessCameraProvider? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_dual_camera)

backCameraPreview = findViewById(R.id.backCameraPreview)
frontCameraPreview = findViewById(R.id.frontCameraPreview)

val cameraProviderFuture = ProcessCameraProvider.getInstance(this)
cameraProviderFuture.addListener({
cameraProvider = cameraProviderFuture.get()
bindDualCameras()
}, ContextCompat.getMainExecutor(this))
}

private fun bindDualCameras() {
val cameraProvider = cameraProvider ?: return
val cameraSelectorBack = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()

val cameraSelectorFront = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_FRONT)
.build()

val previewBack = Preview.Builder().build().also {
it.setSurfaceProvider(backCameraPreview.surfaceProvider)
}

val previewFront = Preview.Builder().build().also {
it.setSurfaceProvider(frontCameraPreview.surfaceProvider)
}

// Unbind any previously bound use cases
cameraProvider.unbindAll()

try {
// Bind both cameras
cameraProvider.bindToLifecycle(this, cameraSelectorBack, previewBack)
cameraProvider.bindToLifecycle(this, cameraSelectorFront, previewFront)
} catch (exc: Exception) {
Log.e("DualCameraActivity", "Use case binding failed", exc)
}
}
}

< /code>

 xml file < /li>
< /ul>







< /code>
Теперь после небольшого исследования я получил следующий код: < /p>
val cameraManager = getSystemService(Context.CAMERA_SERVICE) as CameraManager
val cameraIdList = cameraManager.cameraIdList

for (id in cameraIdList) {
val characteristics = cameraManager.getCameraCharacteristics(id)
val capabilities = characteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES)

if (capabilities != null &&  capabilities.contains(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA)) {
Log.d("CameraInfo", "Device supports concurrent camera: $id")
}
}
This Code request_available_capabilities_logical_multi_camera сообщает, может ли телефон обрабатывать несколько камер или нет, и приведенный выше код не удалось печатать что -либо, что показывает, что мой телефон не может позволить пользовательским приложениям сделать это. Я исследовал больше и узнал, что только чипсеты Snapdragon могут справиться с этим. Я проверил телефон с Snapdragon 730, и он не удался, но с snapdragon 860 сработал.
Поэтому я хочу знать, что это за проблема Разрешено только на Snapdragons 800+, потому что он не работает на последних посредниках (который фактически имеет доступ к двойному режиму в приложении камеры).

Подробнее здесь: https://stackoverflow.com/questions/794 ... r-applicat
Ответить

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

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

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

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

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