Как включить расширения Android CameraX Vendor? - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь создать приложение для камеры на основе CameraX и хочу включить эффект Bokeh (Blur) для предварительного просмотра камеры. Это может быть сделано с помощью расширений CameraX, но как их включить?

Я читал статью о расширениях поставщика на Документах для разработчиков Android . Я пытался повторно использовать их подход, но классы, показанные в примере, не включены в CameraX alpha-02

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);
}

Я ожидал, что BokehImageCaptureExtender будет импортирован, но, похоже, все еще не предоставлен. И весь пакет androidx.camera.extensions отсутствует.

Эти классы можно найти в официальном git-репозитории AndroidX , но его сложно настроить без импорта полного проекта AndroidX.

1 Ответ

0 голосов
/ 27 июня 2019

Я только что отметил, что редактировал ваш вопрос и смотрел здесь , чтобы взять Пример кода , который вы показали, это Java , но вы поставили Kotlin какидентификатор.Убедитесь, что вы используете правильный язык.Это может быть проблемой.

Это Kotlin образец из Документов для разработчиков Android :

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)
}

Это Java образец из Документов для разработчиков Android :

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);
}
...