为了账号安全,请及时绑定邮箱和手机立即绑定

如何启用 Android CameraX 供应商扩展?

如何启用 Android CameraX 供应商扩展?

侃侃尔雅 2023-02-23 10:33:20
我正在尝试构建基于 CameraX 的相机应用程序,并希望为相机预览启用散景(模糊)效果。这可能是由 CameraX 扩展来完成的,但是如何启用它们呢?我已经在Android Developer Docs阅读了有关供应商扩展的文章。我尝试重用他们的方法,但示例中显示的类未包含在 CameraX 中alpha-02import androidx.camera.extensions.BokehExtender;void onCreate() {    // Create a Builder same as in normal workflow.    ImageCaptureConfig.Builder builder = new ImageCaptureConfig.Builder();    // Create a Extender object which can be used to apply extension    // configurations.    BokehImageCaptureExtender bokehImageCapture = new            BokehImageCaptureExtender(builder);    // Query if extension is available (optional).    if (bokehImageCapture.isExtensionAvailable()) {        // Enable the extension if available.        bokehImageCapture.enableExtension();    }    // Finish constructing configuration with the same flow as when not using    // extensions.    ImageCaptureConfig config = builder.build();    ImageCapture useCase = new ImageCapture(config);    CameraX.bindToLifecycle((LifecycleOwner)this, useCase);}我预计BokehImageCaptureExtender会导入,但看起来仍未提供。而且整个包裹androidx.camera.extensions都不见了。这些类可以在官方AndroidX git 存储库中找到,但是如果不导入完整的 AndroidX 项目就很难设置它。
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

Android CameraX 扩展仅存在于版本中:“1.0.0-alpha01”。


降级相机版本://Camera Jetpack Library


def camerax_version = "1.0.0-alpha01"

implementation "androidx.camera:camera-core:$camerax_version"

implementation "androidx.camera:camera-camera2:$camerax_version"

implementation "androidx.camera:camera-extensions:$camerax_version"


查看完整回答
反对 回复 2023-02-23
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

我刚刚注意到编辑您的问题并在此处查看您显示的代码示例是Java,但您将Kotlin作为标识符。确保您使用的是正确的语言。这可能是问题所在。

这是Android 开发者文档中的Kotlin示例:

import androidx.camera.extensions.BokehExtender


fun onCreate() {

    // Create a Builder same as in normal workflow.

    val builder = ImageCaptureConfig.Builder()


    // Create a Extender object which can be used to apply extension

    // configurations.

    val bokehImageCapture = BokehImageCaptureExtender.create(builder)


    // Query if extension is available (optional).

    if (bokehImageCapture.isExtensionAvailable()) {

        // Enable the extension if available.

        bokehImageCapture.enableExtension()

    }


    // Finish constructing configuration with the same flow as when not using

    // extensions.

    val config = builder.build()

    val useCase = ImageCapture(config)

    CameraX.bindToLifecycle(this as LifecycleOwner, useCase)

}

这是Android 开发者文档中的Java示例:


import androidx.camera.extensions.BokehExtender;


void onCreate() {

    // Create a Builder same as in normal workflow.

    ImageCaptureConfig.Builder builder = new ImageCaptureConfig.Builder();


    // Create a Extender object which can be used to apply extension

    // configurations.

    BokehImageCaptureExtender bokehImageCapture = new

            BokehImageCaptureExtender(builder);


    // Query if extension is available (optional).

    if (bokehImageCapture.isExtensionAvailable()) {

        // Enable the extension if available.

        bokehImageCapture.enableExtension();

    }


    // Finish constructing configuration with the same flow as when not using

    // extensions.

    ImageCaptureConfig config = builder.build();

    ImageCapture useCase = new ImageCapture(config);

    CameraX.bindToLifecycle((LifecycleOwner)this, useCase);

}


查看完整回答
反对 回复 2023-02-23
?
郎朗坤

TA贡献1921条经验 获得超9个赞

扩展在 google maven 上仍然不可用 https://dl.google.com/dl/android/maven2/index.html

请参阅此线程, https://stackoverflow.com/a/57177147/11861734


查看完整回答
反对 回复 2023-02-23
  • 3 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信