标签: android-camerax

如何使用 Android CameraX API 缩放相机?

我尝试使用以下代码缩放相机CameraX

\n\n

首先,我得到一个Preview来自并尝试使用如下所示CameraX执行缩放。Preview

\n\n
var config = CameraX.getDefaultUseCaseConfig(PreviewConfig::class.java, lensFacing)\nvar preview = Preview(config)\npreview.zoom(zoom)\n
Run Code Online (Sandbox Code Playgroud)\n\n

preview.zoom()在我再次绑定并收到一些错误之后CameraX,它不起作用。

\n\n
CameraX.bindToLifecycle(this, preview, imageCapture, videoCapture)\n
Run Code Online (Sandbox Code Playgroud)\n\n

当上面的代码不起作用时,我CameraX.unbindAll()首先尝试使用,然后调用CameraX.bindToLifecycle(). 但再次遇到一些错误并且缩放没有成功。

\n\n

让我知道如何使用 API 缩放相机CameraX

\n\n
\n

更新错误日志如下:

\n
\n\n

仅使用错误日志CameraX.bindToLifecycle()

\n\n
java.lang.IllegalArgumentException: Exceeded max simultaneously bound image capture use cases.\n   at androidx.camera.camera2.impl.UseCaseSurfaceOccupancyManager.checkUseCaseLimitNotExceeded(UseCaseSurfaceOccupancyManager.java:61)\n   at androidx.camera.camera2.impl.Camera2DeviceSurfaceManager.getSuggestedResolutions(Camera2DeviceSurfaceManager.java:146)\n   at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java:449)\n   at androidx.camera.core.CameraX.bindToLifecycle(CameraX.java:144)\n   at com.android.example.cameraxbasic.fragments.CameraFragment$updateCameraUi$2.onTouch(CameraFragment.kt:408)\n   at android.view.View.dispatchTouchEvent(View.java:12512)\n   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)\n   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)\n   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)\n   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)\n …
Run Code Online (Sandbox Code Playgroud)

camera android zooming kotlin android-camerax

10
推荐指数
2
解决办法
2万
查看次数

如何在 Android CameraX 中使用手动对焦?

我正在尝试像在 Camera2 API 中一样对 CameraX 进行手动对焦

在 Camera2 API 中,我使用以下代码

final CaptureRequest.Builder captureBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE); 

captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_OFF); 

captureBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, mLensFocusDistance);
Run Code Online (Sandbox Code Playgroud)

android camera X 可以手动对焦吗?如果是这样如何

提前致谢

android focus setfocus android-camerax

10
推荐指数
1
解决办法
1901
查看次数

如何在 Jetpack Compose 中使用 CameraView?

目前 Compose 中没有等效于 CameraView(和 PreviewView)的东西。是否可以将其包装并以组合布局显示?

android kotlin android-camerax android-jetpack-compose

10
推荐指数
3
解决办法
3054
查看次数

为什么 CameraX 不能在 Android Studio 中将图片放大到我需要的大小?

我正在学习 CameraX,CameraXBasic是示例代码。

我写了一个基于zoomX函数的CameraFragment.kt。你可以看到代码A。我认为该功能可以随时放大图片。

我发现一个画面可以当我是变焦调用它与SA小的值,例如zoomX(2f)zoomX(3f),但画面不会放大当我再次用大值,比如zoomX(6.0f)zoomX(7.0f)为什么?

代码 A

   private lateinit var viewFinder: TextureView 
    private var preview: Preview? = null

    fun zoomX(orign: Float ){       
        val x=orign+1

        val singleWidth=viewFinder.width/x
        val singleHeight=viewFinder.height/x

        val left=viewFinder.width/2f-singleWidth/2f
        val right=left+singleWidth
        val top=viewFinder.height/2f-singleHeight/2f
        val bottom=top+singleHeight

        val my= Rect(left.toInt(), top.toInt(), right.toInt(), bottom.toInt())
        preview?.zoom(my)      
    }
Run Code Online (Sandbox Code Playgroud)

android zooming kotlin android-camerax

9
推荐指数
1
解决办法
1335
查看次数

“未绑定到有效相机”CameraX 错误

我试图按照谷歌的“CameraX 入门”代码实验室进行操作,我尝试用 Java 而不是 Kotlin 来完成,但是当我运行它并尝试拍照时,它给了我一个错误,提示未绑定到有效相机. 我找不到代码中的错误所在。我检查了 logcat,它说表面可能有问题,它可能无效,但我不确定如何解决这个问题,有人可以帮我。我将在我的 XML 文件中包含我拥有的内容以及 startCamera 和 takePhoto 函数。

//xml file code
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<Button
    android:id="@+id/camera_capture_button"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginBottom="50dp"
    android:scaleType="fitCenter"
    android:text="Take Photo"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    android:elevation="2dp" />

<androidx.camera.view.PreviewView
    android:id="@+id/viewFinder"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</androidx.constraintlayout.widget.ConstraintLayout>




//start camera function
private void startCamera() throws ExecutionException, InterruptedException {
    previewView = findViewById(R.id.viewFinder);
    ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(MainActivity.this);

    cameraProviderFuture.addListener(() -> {
        try {
            // Used to bind the lifecycle of cameras to the lifecycle owner …
Run Code Online (Sandbox Code Playgroud)

java android android-camerax

9
推荐指数
1
解决办法
1896
查看次数

java.lang.IllegalArgumentException:建议的分辨率映射缺少相机1的分辨率

使用CameraX.LensFacing.FRONT,在模拟器上进行测试时会发生此错误

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: meter.meter, PID: 15289
    java.lang.RuntimeException: Unable to start activity ComponentInfo{meter.meter/meter.meter.CameraActivity}: java.lang.IllegalArgumentException: Suggested resolution map missing resolution for camera 1
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.IllegalArgumentException: Suggested resolution map missing resolution for camera 1
        at androidx.camera.core.Preview.onSuggestedResolutionUpdated(Preview.java:310)
        at androidx.camera.core.UseCase.updateSuggestedResolution(UseCase.java:375)
        at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java:458)
        at androidx.camera.core.CameraX.bindToLifecycle(CameraX.java:144)
        at meter.meter.CameraActivity.onCreate(CameraActivity.java:68)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) …
Run Code Online (Sandbox Code Playgroud)

android-camerax

8
推荐指数
2
解决办法
784
查看次数

Firebase mlKit 条码扫描仪 mlKit 与相机 X 不适用于 android Pie

我正在尝试使用Firebase ML套件扫描二维码,但无法在 android Pie(诺基亚 6.1 Plus)上启动相机。但是,相同的代码可以正常工作Android Oreo Redmi 6 A

这是我的毕业证书:

implementation "com.google.firebase:firebase-ml-vision:21.0.0"
implementation "androidx.camera:camera-core:1.0.0-alpha05"
implementation "androidx.camera:camera-camera2:1.0.0-alpha05"
Run Code Online (Sandbox Code Playgroud)

我已经在 Manifest 中提供了所有必需的权限和相机功能

这是我如何使用 Camera X 代码:

      val previewConfig = PreviewConfig.Builder()
                .setLensFacing(CameraX.LensFacing.BACK)
                .build()

      val preview = Preview(previewConfig)


 preview.setOnPreviewOutputUpdateListener { previewOutput ->
                    textureView.surfaceTexture = previewOutput.surfaceTexture
                }


val imageAnalysisConfig = ImageAnalysisConfig.Builder()
                    .build()
                val imageAnalysis = ImageAnalysis(imageAnalysisConfig)
Run Code Online (Sandbox Code Playgroud)

日志猫:

   E/libc: Access denied finding property "vendor.camera.aux.packagelist"
    W/com.zup.cash: type=1400 audit(0.0:17168): avc: denied { read } for name="u:object_r:vendor_camera_prop:s0" dev="tmpfs" ino=18547 scontext=u:r:untrusted_app:s0:c130,c258,c512,c768 tcontext=u:object_r:vendor_camera_prop:s0 tclass=file permissive=0
E/GLConsumer: [SurfaceTexture-0-7457-1] …
Run Code Online (Sandbox Code Playgroud)

android kotlin firebase firebase-mlkit android-camerax

8
推荐指数
0
解决办法
878
查看次数

如何使用 Android CameraX 自动对焦

最近几个月,Android 发布了一个新的 API camerax。我试图了解如何让相机自动对焦工作。

https://groups.google.com/a/android.com/forum/#!searchin/camerax-developers/auto $20focus|sort:date/camerax-developers/IQ3KZd8iOIY/LIbrRIqEBgAJ

这是关于该主题的讨论,但几乎没有关于它的具体文档。

https://github.com/android/camera-samples/tree/master/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic

这也是基本的camerax应用程序,但我找不到任何处理自动对焦的文件。

任何有关文档的提示或要点都是有帮助的。另外,我对 android 还很陌生,所以很可能我遗漏了一些使上述链接更有用的东西。

android kotlin android-studio android-camerax

8
推荐指数
2
解决办法
8531
查看次数

CameraX 适用于 Android Q 但不适用于 Android R

我正在尝试按照Google Codelabs 中的示例使用 CameraX 创建自定义相机应用程序。

该教程特别指出:

We recommend using an AVD that is based on Android 11 or higher.
Run Code Online (Sandbox Code Playgroud)

它可以正常工作,API 29 (Android 10)但不能正常工作API 30 (Android 10+)并产生以下错误:

2020-08-11 11:22:34.979 8607-8698/com.codelabs.camerax E/CameraCaptureSession: Session 0: Exception while stopping repeating: 
    android.hardware.camera2.CameraAccessException: CAMERA_ERROR (3): cancelRequest:459: Camera 0: Error clearing streaming request: Function not implemented (-38)
        at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:1009)
        at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRequest(ICameraDeviceUserWrapper.java:99)
        at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1263)
        at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:578)
        at android.hardware.camera2.impl.CameraCaptureSessionImpl$2.onDisconnected(CameraCaptureSessionImpl.java:789)
        at android.hardware.camera2.impl.CameraDeviceImpl$7.run(CameraDeviceImpl.java:245)
        at androidx.camera.core.impl.utils.executor.SequentialExecutor$1.run(SequentialExecutor.java:110)
        at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.workOnQueue(SequentialExecutor.java:230)
        at androidx.camera.core.impl.utils.executor.SequentialExecutor$QueueWorker.run(SequentialExecutor.java:172)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923) …
Run Code Online (Sandbox Code Playgroud)

android-camerax android-11

8
推荐指数
0
解决办法
1058
查看次数

使用 cameraX 的 PreviewView 捕获叠加

我正在尝试使用图像捕获中包含的叠加来捕获图片。我能够将覆盖设置为previewView使用cameraView.overlay.add(binding.textView). 但是,当尝试使用imageCapture仅保存图片而不保存叠加的图像时,它没有保存。如何使用PreviewView相机 x保存包含叠加的图像。

请不要将此标记为重复。我研究了很多,大多数在线示例都使用camera不适用于相机 x 库的旧api。任何帮助表示赞赏。提前致谢。

这是我的代码


           <FrameLayout
                android:id="@+id/camera_wrapper"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                app:layout_constraintTop_toTopOf="@id/space1"
                app:layout_constraintBottom_toBottomOf="@id/space">
    
                <androidx.camera.view.PreviewView
                    android:id="@+id/camera_view"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
    
                <TextView
                    android:id="@+id/text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="Hello world"
                    android:textSize="42sp"
                    android:textColor="@android:color/holo_green_dark"/>
    
            </FrameLayout>

Run Code Online (Sandbox Code Playgroud)
  private lateinit var outputDirectory: File
  private lateinit var cameraExecutor: ExecutorService
  private var preview: Preview? = null
  private var lensFacing: Int = CameraSelector.LENS_FACING_FRONT
  private var imageCapture: ImageCapture? = null
  private var camera: Camera? = null
  private var cameraProvider: ProcessCameraProvider? = null

override fun …
Run Code Online (Sandbox Code Playgroud)

camera android android-layout android-studio android-camerax

8
推荐指数
1
解决办法
2294
查看次数