Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

CameraX

Jetpack に追加された CameraX は、アプリにカメラ機能を簡単に追加できるようにします。このライブラリには、多くのデバイスにわたってデベロッパーに一貫したエクスペリエンスを提供できるように、互換性の修正と回避策が多数用意されています。

androidx.camera グループ内のすべてのアーティファクトのリストを以下に示します。

アーティファクト 現在の安定版リリース 次のリリース候補 ベータ版リリース アルファ版リリース
camera-camera2 - - 1.0.0-beta09 -
camera-core - - 1.0.0-beta09 -
camera-extensions - - - 1.0.0-alpha16
camera-lifecycle - - 1.0.0-beta09 -
camera-view - - - 1.0.0-alpha16
このライブラリの最終更新日: 2020 9 月 16 日

デバイスのテスト

CameraX は、Google のラボにある数多くのデバイスでテストされています。現在ラボにあるデバイスの一覧を確認するには、CameraX のラボでテスト済みのデバイスをご覧ください。

依存関係の宣言

CameraX への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.0.0-beta11"
  // The following line is optional, as the core library is included indirectly by camera-camera2
  implementation "androidx.camera:camera-core:${camerax_version}"
  implementation "androidx.camera:camera-camera2:${camerax_version}"
  // If you want to additionally use the CameraX Lifecycle library
  implementation "androidx.camera:camera-lifecycle:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:1.0.0-alpha18"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:1.0.0-alpha18"
}

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

Camera-Camera2 と Camera-Core バージョン 1.0.0

Camera-Camera2 バージョン 1.0.0-beta09

2020 年 9 月 16 日

androidx.camera:camera-camera2:1.0.0-beta09 がリリースされました。バージョン 1.0.0-beta09 に含まれる commit については、こちらをご覧ください

API の変更

  • Camera2CameraInfo は、静的メソッドを提供するのではなく、Camera2 関連の情報を取得するために作成されたとき、CameraInfo インスタンスを受け取ります。(I5b844

バグの修正

  • タブレット デバイスのターゲット アスペクト比の問題を修正しました。ターゲットのアスペクト比が AspectRatio.RATIO_16_9 に設定されている場合は、16:9 サイズを選択する必要があります。(Ib7fcfb/151969438
  • CameraCharacteristics の作成時に発生した AssertionError をアプリで適切に処理できるようにするために、InitializationException をスローします。(I89c8cb/160524721
  • ExposureCompensation の試験運用版インターフェースを追加しました。(If96c7

Camera-Core バージョン 1.0.0-beta09

2020 年 9 月 16 日

androidx.camera:camera-core:1.0.0-beta09 がリリースされました。バージョン 1.0.0-beta09 に含まれる commit については、こちらをご覧ください

API の変更

  • UseCaseGroup でビューポートが非 null としてマークされるバグを修正しました。デベロッパーは、ビューポートを設定せずにビューポートを作成できるはずです。(Ie3d2e
  • ExposureCompensation の試験運用版インターフェースを追加しました。(If96c7
  • プレビューの任意のターゲットを回転できます。変換情報は、新しい TranformationInfoListener コールバックを介して計算され、ユーザーに即時に返されます。(I21470

バグの修正

  • 一部のデバイスでフラッシュがオフにならない問題を修正しました。この問題は、フラッシュ モードを FLASH_MODE_ON に設定して写真を撮影すると発生し、フラッシュを焚くと FLASH_MODE_OFF になります。「トーチモード」が有効になっているような症状です。(Ib4451b/162568128
  • 拡張効果が有効であり、出力サーフェスでベンダー ライブラリの実装に特別な処理を必要とする場合、PreviewView で TextureView を使用するようにしました。(I0c3cc
  • アクティビティ / フラグメント コンテキストが ProcessCameraProvider.getInstance(Context) に渡されたときの、アクティビティ / フラグメント リークを修正しました。

既知の問題

  • ViewPort が設定されている場合、HAL で画像バッファを回転させるデバイスで、ImageCapture の切り抜き範囲が正しくないことがあります。この問題は次のリリースで修正される予定です。

Camera-Camera2 バージョン 1.0.0-beta08

2020 年 8 月 19 日

androidx.camera:camera-camera2:1.0.0-beta08 がリリースされました。バージョン 1.0.0-beta08 に含まれる commit については、こちらをご覧ください

バグの修正

  • bindToLifecycle を最適化して、メインスレッドで高速に実行されるようにしました。(I1d57e
  • DisplayOrientedMeteringPointFactory は、CameraSelector ではなく CameraInfo のインスタンスを受け取るようになりました。これは、ファクトリがポイントを生成する Camera への直接マッピングが行われるようにするためです。DisplayOrientedMeteringPointFactory を使用するすべてのクラスも、CameraSelector ではなく CameraInfo のインスタンスを受け取ります。(I400c1
  • 自動解像度のアスペクト比グループについて、ターゲット解像度の設定が 2016x1080 で、別の 1920x1080 16:9 サイズがある場合に、16:9 mod16 サイズ(864x480)が選択される問題を修正しました。(I53167b/159363774
  • CameraControl が競合状態により機能しない問題を修正しました。(I2279fb/152333890b/160714166

Camera-Core バージョン 1.0.0-beta08

2020 年 8 月 19 日

androidx.camera:camera-core:1.0.0-beta08 がリリースされました。バージョン 1.0.0-beta08 に含まれる commit については、こちらをご覧ください

API の変更

  • DisplayOrientedMeteringPointFactoryCameraSelector ではなく CameraInfo のインスタンスを受け取るようになりました。これは、ファクトリがポイントを生成する Camera への直接マッピングが行われるようにするためです。DisplayOrientedMeteringPointFactory を使用するすべてのクラスも、CameraSelector ではなく CameraInfo のインスタンスを受け取ります。(I400c1

バグの修正

  • 画像キャプチャで、カメラの向きに基づいてメタデータ内の水平フリップフラグを上書きするようになりました。(I28499
  • Context.getApplicationContext() から Application オブジェクトを返さない Context を使用したときに、初期化がクラッシュしなくなりました。(I3d3c9b/160817073

Camera-Camera2 バージョン 1.0.0-beta07

2020 年 7 月 22 日

androidx.camera:camera-camera2:1.0.0-beta07 がリリースされました。バージョン 1.0.0-beta07 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • Android 5.0 レガシー デバイスでプレビューが引き伸ばされる問題を修正しました。(I0c03a
  • 一部のデバイスで WYSIWYG の問題の原因となる JPEG 対応サイズを除外しました。(Ib5128

Camera-Core バージョン 1.0.0-beta07

2020 年 7 月 22 日

androidx.camera:camera-core:1.0.0-beta07 がリリースされました。バージョン 1.0.0-beta07 に含まれるコミットについては、こちらをご覧ください

API の変更

  • FIT_CENTERFIT_STARTFIT_END の自動調整スタイルを FIT と統合しました。FIT は、返される切り抜き範囲が最大限のセンサー範囲になることを意味します。(Ia73c3
  • プレビューの切り抜き範囲はビューポートによって設定されます。切り抜き範囲で覆われた領域のみがエンドユーザーに表示されます。(I142a4

バグの修正

  • Android 5.0 レガシー デバイスでプレビューが引き伸ばされる問題を修正しました。(I0c03a
  • ユースケースのバインドを解除するときの ConcurrentModificationException 例外に関する問題を修正しました。(I371c0

Camera-Camera2 バージョン 1.0.0-beta06

2020 年 6 月 24 日

androidx.camera:camera-camera2:1.0.0-beta06 がリリースされました。バージョン 1.0.0-beta06 に含まれるコミットについては、こちらをご覧ください

API の変更

  • カメラ ID と CameraCharacteristics でカメラをフィルタリングするための試験的なインターフェースを追加しました。(I28f61

バグの修正

  • Samsung Galaxy S7 で startFocusAndMetering がに正常にフォーカスできない問題を修正しました。(If3be7b/159039233
  • アプリを終了した後にカメラを閉じることができない問題を解決しました(I7a7b3)。
  • PreviewView の SurfaceView 実装を使用する場合に、カメラの切り替えを繰り返すとプレビューが機能しない問題を修正しました(I920ce)。
  • 指定された MeteringPoint のいずれも有効な測定長方形を生成できない場合、CameraControl#startFocusAndMetering は失敗します。(Id53ce

Camera-Core バージョン 1.0.0-beta06

2020 年 6 月 24 日

androidx.camera:camera-core:1.0.0-beta06 がリリースされました。バージョン 1.0.0-beta06 に含まれるコミットについては、こちらをご覧ください

API の変更

  • カメラ ID と CameraCharacteristics でカメラをフィルタリングするための試験的なインターフェースを追加しました。(I28f61

バグの修正

  • ProcessCameraProvider#getInstance() を呼び出す前に、ProcessCameraProvider#configureInstance() で CameraX を構成できるようになりました。これにより、アプリの Application クラスで CameraXConfig.Provider を実装しなくても CameraXConfig をカスタマイズできるようになります。(Ia1a8d
  • 指定された MeteringPoint のいずれも有効な測定長方形を生成できない場合、CameraControl#startFocusAndMetering は失敗します。(Id53ce

Camera-Camera2 バージョン 1.0.0-beta05

2020 年 6 月 10 日

androidx.camera:camera-camera2:1.0.0-beta05 がリリースされました。バージョン 1.0.0-beta05 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • スマートフォンがサイレント モードのときに CameraX を初期化すると、アプリの起動時にクラッシュする問題を修正しました。InitializationException が発生すると、アプリがクラッシュするのではなく、CameraUnavailableException が初期化結果の ListenableFuture に設定されます。(I9909ab/149413835
  • CONTROL_AF_STATE が null のデバイスで startFocusAndMetering を呼び出すとクラッシュする問題を修正しました。(Ife55eb/157084254

Camera-Core バージョン 1.0.0-beta05

2020 年 6 月 10 日

androidx.camera:camera-core:1.0.0-beta05 がリリースされました。バージョン 1.0.0-beta05 に含まれるコミットについては、こちらをご覧ください

API の変更

  • スマートフォンがサイレント モードのときに CameraX を初期化すると、アプリの起動時にクラッシュする問題を修正しました。InitializationException が発生すると、アプリがクラッシュするのではなく、CameraUnavailableException が初期化結果の ListenableFuture に設定されます。(I9909ab/149413835

バグの修正

  • setTargetResolutionsetTargetRotation の javadoc を更新しました。(Iae16f

Camera-Camera2 バージョン 1.0.0-beta04

2020 年 5 月 27 日

androidx.camera:camera-camera2:1.0.0-beta04 がリリースされました。バージョン 1.0.0-beta04 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • クラッシュを発生させずに、アプリが Camera2Interop を介して camera2 キャプチャ リクエスト パラメータを設定できるようにしました。パラメータをオーバーライドした結果、問題が発生することがあります。Camera2Interop を使用してパラメータをオーバーライドした場合、安定性と動作が保証されないことに注意してください。(Ibe5a1b/149103700
  • 疑似ロケールを使用しているデバイスでアプリを使用する場合の自動初期化が修正されました。(I3bef3b/154767663
  • デタッチされたユースケースに関連するエラーログを Camera2CameraImpl のデバッグログに変換しました。(I1a565b/154422490
  • フラッシュを焚いても撮影画像が暗すぎる場合がある問題を修正しました。(I5d9fab/149729613
  • ImageCapture からの ImageProxy のバッファが巻き戻されないバグを修正しました。(I0c455b/153249512
  • ImageCapture のみをバインドする場合の次の問題を修正しました:(1)MAX_QUALITY の写真を撮影できない。(2)自動露出が機能しないため、画質が低下する。(I17782b/145326998
  • カメラを横取りする別のプロセスまたはコードパスによって CameraX が接続解除された場合のカメラの再起動の信頼性を改善しました。(I1fbc3b/153714651

Camera-Core バージョン 1.0.0-beta04

2020 年 5 月 27 日

androidx.camera:camera-core:1.0.0-beta04 がリリースされました。バージョン 1.0.0-beta04 に含まれるコミットについては、こちらをご覧ください

API の変更

  • CameraX カメラスタックにより内部的に使用されるハンドラを設定するための試験運用版 API CameraXConfig.Builder#setSchedulerHandler() を追加しました。この新しい API を CameraXConfig.Builder#setCameraExecutor() とともに使用すると、CameraX カメラスタックにより使用されるスレッドを完全に制御できます。(I7bf32b/121160431

バグの修正

  • ImageReaderProxy が閉じられた後で ImageProxy にアクセスした場合に ImageAnalysis がクラッシュする問題を修正しました。これは、ImageReaderProxy を閉じる前に、Analyzer が受け取ったすべての ImageProxy を閉じることを要します。(I4b299b/145956416b/154155377b/156357269
  • PreviewView#createSurfaceProvider() から CameraInfo パラメータを削除し、PreviewViewSurfaceRequest から内部的にそれを取得するようにしました。(If18f0b/154652477
  • 疑似ロケールを使用しているデバイスでアプリを使用する場合の自動初期化が修正されました。(I3bef3b/154767663
  • フラッシュを焚いても撮影画像が暗すぎる場合がある問題を修正しました。(I5d9fab/149729613
  • setAnalyzer / clearAnalyzer を複数回呼び出すと、アナライザが解析対象の画像を受信しない ImageAnalysis の問題を修正しました。(I6169fb/151605317b/153514544
  • ImageCapture からの ImageProxy のバッファが巻き戻されないバグを修正しました。(I0c455b/153249512
  • CameraManager からのサポートされているリストの最初のカメラが選択されない場合がある問題を修正しました。(I4c624b/153418028
  • 以前リクエストされたサーフェスを解放しない Preview.SurfaceProvider の設定によって断続的なクラッシュが発生する問題を修正しました。“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”I8e4e7b/155936225

Camera-Camera2 バージョン 1.0.0-beta03

2020 年 4 月 15 日

androidx.camera:camera-camera2:1.0.0-beta03 がリリースされました。バージョン 1.0.0-beta03 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • camera-core のリリースをサポートするための修正

Camera-Core バージョン 1.0.0-beta03

2020 年 4 月 15 日

androidx.camera:camera-core:1.0.0-beta03 がリリースされました。バージョン 1.0.0-beta03 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • UseCase がゼロの場合に bindToLifecycle() を呼び出すと例外がスローされるという beta03 からのリグレッションを修正しました。これにより、UseCase をバインドせずに Camera を取得できなくなりました。

Camera-Camera2 バージョン 1.0.0-beta02

2020 年 4 月 1 日

androidx.camera:camera-camera2:1.0.0-beta02 がリリースされました。バージョン 1.0.0-beta02 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • EXIF の向きの回転値と一致するように、ImageCapture で生成された ImageProxyImageInfo.getRotationDegrees() を修正しました。(Id4281b/150802561
  • build.gradle 内の CameraX 依存関係の明示的な順序付けは CameraX/Camera2 のデフォルトの実装を使用する際に必要なくなりました。厳密な依存関係を宣言する必要がある場合、CameraX のすべての依存関係をビルドファイルに含めることができるようになりました。(I46e88
  • 表示サイズが 640x480 未満のデバイスで発生する IllegalArgumentException の問題を修正しました。(Ife3f2b/150506192
  • 正常にバインドされた場合にのみ UseCase を変更するように bindToLifecycle を修正しました。以前は、解像度計算を行うために bindToLifecycle を呼び出すと UseCase が更新されていましたが、計算を行うために UseCase を更新する必要がなくなりました(I78d9e)。

Camera-Core バージョン 1.0.0-beta02

2020 年 4 月 1 日

androidx.camera:camera-core:1.0.0-beta02 がリリースされました。バージョン 1.0.0-beta02 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • EXIF の向きの回転値と一致するように、ImageCapture で生成された ImageProxyImageInfo.getRotationDegrees() を修正しました。(Id4281b/150802561
  • 正常にバインドされた場合にのみ UseCase を変更するように bindToLifecycle を修正しました。以前は、解像度計算を行うために bindToLifecycle を呼び出すと UseCase が更新されていましたが、計算を行うために UseCase を更新する必要がなくなりました(I78d9e)。
  • Preview.setSurfaceProvider()を複数回呼び出した後にプレビュー サーフェスが変更されると、Preview ユースケースのキャプチャ セッションが更新されない問題を修正しました。

Camera-Camera2 バージョン 1.0.0-beta01

2020 年 2 月 26 日

androidx.camera:camera-camera2:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • SurfaceRequest.setSurface(Surface) の名前を SurfaceRequest.provideSurface(Surface) に、SurfaceRequest.setWillNotComplete() の名前を SurfaceRequest.willNotProvideSurface() に変更しました。(I224fe
  • ImageCapture.setTargetRotation() を使用してターゲットの回転値を変更した後、保存した画像のアスペクト比が不正確になる問題を修正しました。(I474eab/148763432
  • デフォルトの CameraXConfig プロバイダを設定するフラグを保持することにより、ProGuard を有効にしたアプリのバリアントの初期化を修正しました。(I2d6c1

Camera-Core バージョン 1.0.0-beta01

2020 年 2 月 26 日

androidx.camera:camera-core:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれるコミットについては、こちらをご覧ください

API の変更

  • SurfaceRequest.provideSurface()ListenableFutureExecutorCallback に変更しました。これにより provideSurface() での例外の処理が不要になることで API が簡素化され、provideSurface() コールバックをキャンセルできなくなります。これは、サーフェスのリリースが早すぎるために発生する古いデバイスでのクラッシュを防ぐためのものです。SurfaceRequest.Result オブジェクトは、SurfaceRequest が指定された Surface をどのように使用するかを追跡するために使用されるようになりました。(I7854b
  • SurfaceRequest.setSurface(Surface) の名前を SurfaceRequest.provideSurface(Surface) に、SurfaceRequest.setWillNotComplete() の名前を SurfaceRequest.willNotProvideSurface() に変更しました。(I224fe

バグの修正

  • ImageCapture.setTargetRotation() を使用してターゲットの回転値を変更した後、保存した画像のアスペクト比が不正確になる問題を修正しました。(I474eab/148763432
  • デフォルトの CameraXConfig プロバイダを設定するフラグを保持することにより、ProGuard を有効にしたアプリのバリアントの初期化を修正しました。(I2d6c1
  • Flash モード API のドキュメントを更新し、使用できる値を追加しました。(I4a3ec

Camera-Camera2 バージョン 1.0.0-alpha10

2020 年 2 月 10 日

androidx.camera:camera-camera2:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • Camera2 によって使用されている間だけ Surface を保持することで、INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY デバイスの安定性が向上しました。(I9dac2
  • CONTROL_AE_TARGET_FPS_RANGE を適切に調整することで、従来のデバイスでの露出不足の問題を修正しました。(1224638

Camera-Core バージョン 1.0.0-alpha10

2020 年 2 月 10 日

androidx.camera:camera-core:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれるコミットについては、こちらをご覧ください

API の変更

  • UriOutputStream に画像を保存できるように ImageCapture を更新しました。オーバーロードされた takePicture メソッドを 1 つに統合しました。典型例として Uri を使用するようテストアプリを更新しました。(Ia3bec
  • Preview.PreviewSurfaceProvider の名前が Preview.SurfaceProvider に変更されました。SurfaceProvider ではデベロッパーが独自の ListenableFuture を作成する必要がなくなり、新しい SurfaceRequest オブジェクトを介して Surface が提供されるようになりました。Preview.getPreviewSurfaceProvider() メソッドは、PreviewPreviewView などの他のクラスとペア設定される場合に悪用される可能性があるため、削除されました。(I20105
  • getTargetRotation()getTargetName()Preview に追加しました。(Iceee7
  • getTargetRotation()getBackpressureStrategy()getImageQueueDepth()ImageAnalysis に追加しました。(I9d6d9
  • getTargetRotation()getCaptureMode()ImageCapture() に追加しました(I5bc17
  • 以前に ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() で渡されていた引数は、単一の引数 ImageCaptureException(以前に渡されていた情報をすべて含む)に変更されました。
  • ImageCapture.OnImageSavedCallback.onImageSaved() で以前に渡されていた file 引数は削除されました。(I750d2
  • PreviewImageCaptureクラスは final とマークされるようになりました。(I2500b
  • API が CameraInfogetZoomRatio()getMaxZoomRatio()getMinZoomRatio()、および getLinearZoom() メソッドで更新され、ZoomState インスタンスを返す getZoomState() に統合されました。(Ib19fe
  • API フィールド OPTION_TARGET_CLASSOPTION_TARGET_NAME は内部ライブラリの使用のみを目的としているため、CameraXConfig から削除されました。CameraXConfig.Builder のコンストラクタを削除しました。(I96912
  • CameraX を初期化するために Application を拡張する必要があるという要件を削除しました。アプリケーションの build.gradlecamera-camera2 アーティファクトが含まれている場合、CameraX の初期化がデフォルトの Camera2 設定で行われるようになりました。(I58ff5)(b/146923574

Camera-Camera2 バージョン 1.0.0-alpha09

2020 年 1 月 22 日

androidx.camera:camera-camera2:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれるコミットについては、こちらをご覧ください

API の変更

  • Camera2 カメラ ID を抽出するための camera2 相互運用パスを追加しています。CameraInfo からカメラ ID を抽出するには、Camera2CameraInfo.extractCameraId() を使用します。 この使用方法を、次のコードサンプルで示します。

    Camera camera = provider.bindToLifecycle(...);
    String cameraId =
        Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
    

    Camera2CameraInfo クラスには、ExperimentalCamera2Interop markerClass が必要となります。

Camera-Core バージョン 1.0.0-alpha09

2020 年 1 月 22 日

androidx.camera:camera-core:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれるコミットについては、こちらをご覧ください

API の変更

  • SurfaceOrientedMeteringPointFactory のパラメータ useCaseForSurface の名前が useCaseForAspectRatio に変更され、リファレンス ドキュメントが拡張されました。
  • FocusMeteringAction.Builder.from() メソッドは、コンストラクタ FocusMeteringAction.Builder() に置き換えられています。
  • DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float) を削除しました。アプリで Display パラメータを受け取るコンストラクタを使用して、現在のディスプレイに渡す必要があります。
  • MeteringMode と 3A フラグに関するフォーカスと計測 API、および Display パラメータの使用法について Javadoc を改善しました。
  • setZoomRatiosetLinearZoom のリファレンス ドキュメントを拡張しました。

バグの修正

  • カメラを閉じてから開くと「前提条件」チェックが失敗する問題を修正しました。
  • Torch API および Zoom API の使用時に発生する可能性がある ConcurrentModificationException を修正しました。
  • mod16 ディメンション サイズが利用可能な場合、要求された解像度に近い解像度を選択できるように問題を修正しました。
  • startFocusMetering API と cancelFocusMetering API は、文書化されているとおりに動作し、エラーが発生した場合に正しいタイミングでエラーが発生した場合にそれを返せるようになりました。
  • デバイスで対応できないサイズの指定の切り抜きのアスペクト比を指定して、特定のターゲット解像度がリクエストされた場合の問題を修正しました。現在、元のリクエストをバインドするのに十分な解像度で、切り抜きされていないサイズが選択されます(利用可能な場合)。

Camera-Camera2 バージョン 1.0.0-alpha08

2019 年 12 月 18 日

androidx.camera:camera-camera2:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれるコミットについては、こちらをご覧ください

既知の問題

  • Camera2 の相互運用を使用している場合、Camera2 のキャプチャ要求オプションが機能するとは限りません。要求されたオプションがサポートされていない場合、セッションの開始に失敗し、次のようなエラーが発生することがあります。09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

バグの修正

  • API レベル 21、22 のカメラを回転または切り替えた後にプレビューの黒画面が表示される問題を修正しました。

API の変更

  • 試験運用版: カメラ ID を抽出するための camera2 相互運用パスを追加しました。

Camera-Core バージョン 1.0.0-alpha08

2019 年 12 月 18 日

androidx.camera:camera-core:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれるコミットについては、こちらをご覧ください

既知の問題

  • PreviewView または CameraView を使用するアプリにおいて、アスペクト比のプレビューが正しくない可能性があります。これは、一部の FULL レベルのデバイス(Pixel2 など)で一時停止または再開した後に発生します。

バグの修正

  • FocusMeteringActionCameraControl のドキュメントを更新しました。
  • enableTorch()getTorchState()TorchControl を実装しました。

API の変更

  • IntDef を非公開にし、IntDef 定数を IntDef 定義外に移動しました。
  • rotationDegrees のクラスを OnImageCaptureCallback から ImageInfo に変更しました。
  • rotationDegrees のクラスを Analyzer から ImageInfo に変更しました。

Camera-Camera2 バージョン 1.0.0-alpha07

2019 年 12 月 4 日

androidx.camera:camera-camera2:1.0.0-alpha07 がリリースされました。camera-camera2 のバージョン 1.0.0-alpha07 に含まれるコミットについては、こちらをご覧ください

  • Camera2Config は、CameraX の Camera2 ベースの実装の初期化と設定に使用できるようになりました。初期化でこれを使用する方法について詳しくは、リリースノートの camera-core セクションをご覧ください。
  • camera2 の相互運用機能は試験運用とみなされ、別のパッケージ androidx.camera.camera2.interop. に移動しました。

Camera-Core バージョン 1.0.0-alpha07

2019 年 12 月 4 日

androidx.camera:camera-core:1.0.0-alpha07 がリリースされました。camera-core のバージョン 1.0.0-alpha07 に含まれるコミットについては、こちらをご覧ください

ベータ版の準備を進めるため、このアルファ版リリースで一部大幅な変更を行っています。変更を確認し、フィードバックがございましたら CameraX Google グループまでお寄せください。Play ストアにあるアプリで CameraX を使用しているデベロッパーの場合、正式なベータ版のリリースをお待ちいただいてから、アプリ内のライブラリをアップグレードすることをおすすめします。

API の変更

  • 重要: CameraX の初期化が変更されました。アプリで CameraXConfig.Provider を実装し、androidx.camera.camera2 が提供するデフォルトの Camera2Config を使用する必要があります。一般的な使用法は以下のとおりです。

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • CameraX クラスが削除されました。以前は CameraX クラスの呼び出しによって提供されていた bindToLifecycle()unbind()unbindAll()isBound()hasCamera() が、ProcessCameraProvider を介して利用できるようになりました。

  • ProcessCameraProvider のプロセスごとのインスタンスは、静的メソッド ProcessCameraProvider.getInstance() を使用して非同期に取得されます。このメソッドは、完了時に ProcessCameraProvider を提供するリッスン可能な Future を返します。 一般的な使用法は、onCreate() に示されています。アクティビティのライフサイクル後半で getInstance() を呼び出して、初期化レイテンシを後回しにできます(ユーザー操作によりカメラ UI を開くときなど)。

    import androidx.camera.lifecycle.ProcessCameraProvider
    import com.google.common.util.concurrent.ListenableFuture
    
    class MainActivity : AppCompatActivity() {
       private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
       override fun onCreate(savedInstanceState: Bundle?) {
           cameraProviderFuture = ProcessCameraProvider.getInstance(this);
      }
    
  • リスナーを、getInstance() によって返される ListenableFuture に追加できます。これにより、Future.get() をブロックせずに Future からカメラ プロバイダを取得できるようになります。

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • カメラの選択は、ユースケースごとではなく、カメラセレクタによって行われるようになりました。

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • CameraProvider.bindToLifecycle には、ライフサイクル オーナー、カメラセレクタ、ユースケースが指定されます。これらは、指定のライフサイクル オーナーにバインドされ、選択したカメラに対して実行されます。

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • ユースケース「Config」クラスは削除されています。代わりに、ユースケースを直接ビルドし、ユースケース ビルダーごとにオプションを設定します。次に例を示します。

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • アプリによって作成および管理されるサーフェスを受け入れるように Preview ユースケースが更新され、Android ベスト プラクティスが確保されるようになりました。camera-view パッケージで提供される PreviewView ビュークラスを使用することを強くおすすめします。

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • アプリ管理型サーフェスのアタッチに関するドキュメントをご覧ください。この場合、アプリがサーフェスのライフサイクルを管理します。

  • 重要: ImageAnalysis Analyzer メソッドの実装は、受信した画像の使用が終了したら、image.close() を呼び出す必要があります。呼び出さない場合、バック プレッシャーの設定によっては、新しい画像が受信されない、またはカメラが停止することがあります。詳しくは、リファレンス ドキュメントをご覧ください。

  • ImageAnalysis ImageReaderMode は、バックプレッシャー ストラテジー intdef に変更されました。

  • ImageProxy.getImage() は試験運用とみなされています。アプリにおいて @androidx.camera.core.ExperimentalGetImage などを介して使用箇所にアノテーションを付ける必要があります。

  • AnalyzerUIThread アノテーション要件は削除されました。

  • アナライザを削除するために ImageAnalysis.clearAnalyzer() 関数が追加されました。

  • メソッドが 1 つ以上あるリスナーの名前において Listner を Callback に変更しました。

    • ImageCapture.OnImageCapturedListenerImageCapture.OnImageCapturedCallback に変更
    • ImageCapture.OnImageSavedListenerImageCapture.OnImageSavedCallback に変更
    • VideoCapture.OnVideoSavedListenerVideoCapture.OnVideoSavedCallback に変更
  • Enums が IntDef に変更されました

  • ズーム コントロールが以下のとおり追加されました。

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • Flash または Torch ハードウェアが存在するかどうかを判断するために CameraInfo.hasFlashUnit() が追加されています。

  • CameraInfo.isFlashAvailable() を削除しました。Torch があると Flash 機能をオーバーライドします。詳しくは、リファレンス ドキュメントをご覧ください。

  • ImageCapture.Metadata フィールドは、get/set/is アクセサーに置き換えられています。

  • startFocusMeteringcancelFocusMetering は、呼び出しの非同期操作を表す ListenableFutures を返すようになりました。

  • MeteringPoints は測光アクションのハンドルとして機能するようになり、ファクトリによって生成されます。アプリにおいて、カスタム ファクトリではなく既存のファクトリを使用する必要があります。

修正された問題

  • 再開時(前の一時停止で写真撮影が完了待ち状態の後)に写真を撮影するときの問題を修正しました。
  • 既知の問題: CameraControl.enableTorch() は機能しますが、フラッシュ装置がない場合でも、ListenableFuture<Void> で常にすぐに complete(success) Future が返されます。今後のバージョンでは、フラッシュ装置がない場合、enableTorch(true) はすぐに失敗(CaptureSession にリクエストを送信しない)し、TorchState はオフのままとなるように最終動作が修正されます。
  • 既知の問題: startFocusAndMeteringcancelFocusAndMetering は、フォーカスと測光の開始およびキャンセルを行いますが、すぐに completed (success) Future を返します(ドキュメントに記載の動作とは異なる)。ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()FocusMeteringResult は偽の結果です。その isFocusSuccessful() では常に「false」が返され、ドキュメントに記載の意図した動作とは異なります。
  • 既知の問題: PreviewView タッチイベントで使用する測光ポイント ファクトリが開発されています。現時点では、カスタム管理型サーフェスを接続するアプリは既存の測光ポイント ファクトリを使用できます。そうでない場合、PreviewView でタッチ フォーカス機能を使用できません。

Camera-Camera2 と Camera-Core バージョン 1.0.0-alpha06

2019 年 10 月 9 日

androidx.camera:camera-camera2:1.0.0-alpha06androidx.camera:camera-core:1.0.0-alpha06 がリリースされました。camera-camera2:1.0.0-alpha06 に含まれるコミットと、camera-core:1.0.0-alpha06 に含まれるコミットがあります。

新機能

アスペクト比の設定の変更:

  • setTargetAspectRatioMode() が追加され、enum 引数を受け取ります。これは、任意のアスペクト比ではなく、オプションの RATIO_4_3 または RATIO_16_9 にアスペクト比モードを設定します。これは、カメラが提供するのは、任意のアスペクト比ではなく、特定のアスペクト比だけであるという事実により即したものになります。
    • 現在、指定できる比は、16:9 と 4:3 だけです。1:1 については、カメラで利用できるのが一部のデバイスだけで、解像度が限られます。1:1 のインターフェースや処理を設計中のアプリは、それより柔軟性のある 16:9 または 4:3 の選択肢を使用して、表示を切り抜くか、サブリージョンを処理する必要があります。
    • これらのアスペクト比では、センサー領域を最大限使用できます。
  • getTargetAspectRatio() がユースケースの Config API に追加され、そのユースケースの出力がターゲットとするアスペクト比を返します。
  • メソッド setTargetAspectRatio(Rational aspectRatio) は ImageCapture のために setTargetAspectRatioCustom(Rational aspectRatio) に変更されました。設定すると、ImageCapture 出力は設定に応じてトリミングされます。

Executor API

  • 以下の関数は executor パラメータを受け取り、関数を実行するエグゼキュータをアプリが制御できるようにします。
    • Preview.setOnPreviewOutputUpdateListener() API: エグゼキュータがその関数に存在しない場合は、関数はメインスレッドで実行されます。
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CmaeraInfo API および Flash が使用可能かどうかとセンサーの回転を確認する API

  • CameraInfogetCameraInfo メソッドが追加され、アプリがそのカメラでレンズの向きの CameraInfo と、フラッシュが使用可能かどうかを確認できるようになりました。次に例を示します。

    try {
        CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing);
        LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable();
        flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE);
    } catch (CameraInfoUnavailableException e) {
        Log.w(TAG, "Cannot get flash available information", e);
        flashToggle.setVisibility(View.VISIBLE);
    }
    
  • CameraInfo.getSensorRotationDegrees() が追加されました。それにより、デバイスの自然な向きを基準にした、または便宜のため、サーフェスの回転で表される向きを基準にしたカメラの向きが提供されます(サーフェスの回転は、自然な向きを基準にして表されます)。

API の変更とバグの修正

  • アスペクト比: アプリは各ユースケースに対して、1 回だけ setTargetResolution() または setTargetAspectRatio() を呼び出す必要があります。同じビルダーで両方を呼び出すと、エラーが返されます。
    • アプリの UI の設計に応じて、setTargetAspectRatio() を使用することを一般におすすめします。個々の解像度はユースケースに基づいています。たとえば、プレビューでは画面解像度に近いものにし、画像キャプチャでは高解像度の静止画を提供します。詳細については、自動解像度に関する表をご覧ください。
    • 計算量の節減のために最小解像度が必要な場合や、細部を処理するために最大解像度が必要な場合など、特殊なケースでは setTargetResolution() を使用します。
  • Executor API: ユースケースの Configuration API から setCallbackHandler() の呼び出しを削除しました。アプリはその代わりに、コールバックを設定するその他のさまざまな API のパラメータとしてエグゼキュータを設定できます。
  • さまざまな関数の null アノテーションが更新されました。
  • カメラを開いたときに java.lang.IllegalStateException at Camera$StateCallback.onError がスローされる問題を修正しました。
  • アプリが大きい解像度やデフォルトの解像度をリクエストしたときに、小さすぎる解像度(640x480 未満)が選択されて、プレビュー画像がムラがあるまたはぼやける場合の問題を修正しました。小さい解像度が特に必要なアプリは、明示的にリクエストできます。
  • 別のカメラアプリを起動するインテントから戻った後に、カメラで真っ黒な画面が表示される(カメラを起動できない)問題を修正しました。
  • アプリを繰り返し起動または停止したときに次のエラーがスローされるバグを修正しました。java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • ImageAnalysis を無効にしたときに発生する次のエラーを修正しました。java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more.
  • カメラの接続解除フローのテストを追加しました。
  • 背中合わせのカメラのテストを実行するテストシステムの堅牢性を改善しました。

Camera-Camera2 と Camera-Core バージョン 1.0.0-alpha05

2019 年 9 月 5 日

androidx.camera:camera-camera2:1.0.0-alpha05androidx.camera:camera-core:1.0.0-alpha05 がリリースされました。camera-camera2:1.0.0-alpha05 に含まれるコミットと、camera-core:1.0.0-alpha05 に含まれるコミットがあります。

  • API の変更: ユースケース エラー変数の名前の変更:

    • ImageCapture.UseCaseError の名前を ImageCapture.ImageCaptureError に変更しました
    • VideoCapture.UseCaseError の名前を VideoCapture.VideoCaptureError に変更しました
  • Tap-to-Focus API を備えた CameraControl API を追加しました

    • カメラの CameraX から CameraControl を取得する API を追加しました。レンズの向きによって選択されます。

      CameraX.getCameraControl(LensFacing lensFacing)

    • Tap-to-Focus を実行するために、MeteringPointFactoryMeteringPointMeteringModeFocusMeteringAction を追加しました。

      MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height);
      MeteringPoint point = factory.createPoint(x, y);
      FocusMeteringAction action = FocusMeteringAction.Builder.from(point,
                                       MeteringMode.AF_ONLY)
          .addPoint(point2, MeteringMode.AE_ONLY) // could have many
          .setAutoFocusCallback(new OnAutoFocusListener(){
              public void onFocusCompleted(boolean isSuccess) {
              }
          })
          // auto calling cancelFocusAndMetering in 5 sec.
          .setAutoCancelDuration(5, TimeUnit.Second)
          .build();
      
    • フォーカス測定の開始とキャンセルを行うために CameraControl の API を追加しました。

      getCameraControl(lensFacing).startFocusAndMetering(action); getCameraControl(lensFacing).cancelFocusAndMetering();

    • ビュークラスに基づいてタップ座標からセンサー座標への変換を支援する測定ポイント ファクトリの API を追加しました。

      MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView); MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);

  • 以下のメソッドがメイン(UI)スレッドにあれば呼び出しを行い、そうでない場合は IllegalStateException をスローします。今後のバージョンでは、他のスレッドで使用できるようになり、シリアル化が確実になります。

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • さまざまな構成設定が null パラメータを受け入れるようになりました。対応するゲッターが null を返す場合があります。

  • AF/AE/AWB 設定をサポートしないエミュレータでテストする場合の問題を修正しました。

  • 画像分析中の回転に関するクラッシュのバグを修正しました。

  • 回転後または前面カメラと背面カメラの切り替え後、開始時(カメラデータなし)にプレビューが黒く表示されるバグを修正しました。

  • 複数の同時画像分析ユースケースについてのテストを削除しました。互換性を確保するために、アプリケーションは単一の画像分析ユースケースのみをアタッチする必要があります。

  • カメラテスト スイート(WIP)に、偽カメラ用の初回の robolectric テストを追加しました。

  • Camera2Inititalizer テストは、カバレッジが不明瞭なため / 誤解を招くため、削除されました。

Camera-Camera2 と Camera-Core バージョン 1.0.0-alpha04

2019 年 8 月 7 日

androidx.camera:camera-camera2:1.0.0-alpha04androidx.camera:camera-core:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれるコミットについては、こちらをご覧ください

新機能

アスペクト比と解像度選択の変更

CameraX の目標は、カメラ セッションを正常に初期化することです。つまり CameraX は、最初の目標としてキャプチャ セッションを開始するために、デバイスの機能に基づいて解像度やアスペクト比に関して妥協します。したがって、正確なリクエストが受け入れられない可能性があります。次の原因が考えられます。

  • リクエストされた解像度をデバイスがサポートしていない
  • 正常に動作するために特定の解像度を使用する必要がある旧式デバイスなどの互換性の問題
  • 一部のデバイスで特定のフォーマットが特定のアスペクト比でしか使用できない
  • JPEG または動画エンコードについて「mod16 に最も近い」値が優先される設定。CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP に関する説明をご覧ください。

CameraX はセッションを作成し管理しますが、コードのユースケース出力で返される画像サイズを常に確認し、それに応じて調整する必要があります。

API をより明確にするために、解像度とアスペクト比の設定に変更をいくつか加えました。

  • プレビューのユースケースは、何も設定されていない場合、デフォルトのアスペクト比 4:3 であると見なされるようになりました。
  • CameraX がデバイスの機能に基づいて、リクエストされた解像度とアスペクト比に対する変更を内部的に検討するとき、まず同じアスペクト比(setTargetAspectRatio または setTargetResolution の呼び出しのいずれかによって判断)を維持しようとします。
  • 「mod16 に最も近い」バージョンの解像度は、同じアスペクト比と見なされます。

ImageAnalysis 非ブロッキング モード

  • ImageReaderMode.ACQUIRE_LATEST_IMAGE の動作が非ブロッキングになりました。キュー内の最新の画像を取得しますが、未使用の画像を継続的に破棄して、カメラ パイプラインがブロックされないようにします。
  • アナライザは、パイプラインを停止させることなく、単一の画像を無期限に保持できます。
  • アプリがブロックするエグゼキュータを提供する場合、ImageAnalysis ユースケースはブロックします。
  • 内部で設定されたデフォルトのエグゼキュータは、非ブロッキング エグゼキュータとして動作します。

バグの修正

  • オートフォーカス、自動露出、オートホワイトバランスのないデバイスで画像をキャプチャする場合に 3A 収束を待つタイムアウトの問題を修正しました。
  • ImageCapture ですばやく写真を撮るときの問題を修正しました。次のエラーが修正されます。java.lang.IllegalStateException: maxImages (2) has already been acquired
  • ユースケースに対して setLensFacing が呼び出されず、結果として java.lang.IllegalArgumentException: Unable to get camera ID for use case が発生する問題を修正しました。
  • 旧式デバイスで、JPEG の最大解像度として特定のアスペクト比が必要となる問題を修正しました。
  • カメラが開いているときにアプリをバックグラウンド処理する場合の問題を修正しました。
  • API レベル 25 未満での問題を修正し、エラー checkAndUpdateEglState: invalid current EGLDisplay を削除しました。
  • 拡張機能を有効にして開始した後にプレビューのバインドを解除するときの問題を修正しました。
  • camera-view と camera-extensions のビルド アーティファクトがアルファ版として公開されるようになりました。

Camera-Camera2 と Camera-Core バージョン 1.0.0-alpha03

2019 年 7 月 2 日

androidx.camera:camera-core:1.0.0-alpha03androidx.camera:camera-camera2:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれるコミットについては、こちらをご覧ください

API の変更

  • setTarget 構成呼び出しでの「ターゲット」に関する javadoc の説明を追加しました。

Camera-Core

  • すばやい開閉時またはバインド / バインド解除時の、未構成の入力 / 出力サーフェスのクラッシュを修正
  • 新しい Futures 実装に移行
  • より堅牢なテストのための、テストの修正
  • コア統合テストで写真のキャプチャ時間が表示されるようになりました。
  • エグゼキュータ向けの内部互換クラスを開発しました。
  • タイミング テストアプリのキャプチャ画像は、前の処理が完了して安定性が改善されるまで待機します。

拡張機能

  • バージョニング チェックを追加
  • 追加のテスト カバレッジ - 拡張イベント コールバック
  • 内部的に対応する画像とメタデータの改善
  • テストアプリでのモード切り替えの修正

Camera-Camera2 と Camera-Core バージョン 1.0.0-alpha02

2019 年 6 月 5 日

androidx.camera:camera-core:1.0.0-alpha02androidx.camera:camera-camera2:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • エミュレータ使用時のゼロ除算の問題を修正
  • ユースケースのバインド解除と再バインドをすばやく行いつつ急いで写真を撮ると、一部のデバイスで NullPointerException/Surface Abandoned エラーが発生する問題を修正
  • キャプチャ リクエストの更新がすべてのサーフェスに一貫して影響するようにするために内部の問題を修正
  • 新しいアプリ インスタンスでユースケースを再開するときの安定性の向上
  • API でエグゼキュータのサポートに備えるための内部アーキテクチャの変更
  • CameraX クラスとライフサイクル管理に関する Javadoc の追加説明
  • Antelope パフォーマンス テストアプリのインストゥルメント化テストを追加
  • アプリの Proguard 設定で「-keepattributes Signature」の必要性を削除

Camera-Camera2 と Camera-Core 1.0.0-alpha01

2019 年 5 月 7 日

androidx.camera:camera-core:1.0.0-alpha01androidx.camera:camera-camera2:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれるコミットについては、こちらをご覧ください

Camera-Lifecycle バージョン 1.0.0

Camera-Lifecycle バージョン 1.0.0-beta09

2020 年 9 月 16 日

androidx.camera:camera-lifecycle:1.0.0-beta09 がリリースされました。バージョン 1.0.0-beta09 に含まれる commit については、こちらをご覧ください

Camera-Lifecycle バージョン 1.0.0-beta08

2020 年 8 月 19 日

androidx.camera:camera-lifecycle:1.0.0-beta08 がリリースされました。バージョン 1.0.0-beta08 に含まれる commit については、こちらをご覧ください

バグの修正

  • Context.getApplicationContext() から Application オブジェクトを返さない Context を使用したときに、初期化がクラッシュしなくなりました。(I3d3c9b/160817073

Camera-Lifecycle バージョン 1.0.0-beta07

2020 年 7 月 22 日

androidx.camera:camera-lifecycle:1.0.0-beta07 がリリースされました。バージョン 1.0.0-beta07 に含まれるコミットについては、こちらをご覧ください

Camera-Lifecycle バージョン 1.0.0-beta06

2020 年 6 月 24 日

androidx.camera:camera-lifecycle:1.0.0-beta06 がリリースされました。バージョン 1.0.0-beta06 に含まれるコミットについては、こちらをご覧ください

API の変更

  • ProcessCameraProvider#getInstance() を呼び出す前に、ProcessCameraProvider#configureInstance() で CameraX を構成できるようになりました。これにより、アプリの Application クラスで CameraXConfig.Provider を実装しなくても CameraXConfig をカスタマイズできるようになります。(Ia1a8d

Camera-Lifecycle バージョン 1.0.0-beta05

2020 年 6 月 10 日

androidx.camera:camera-lifecycle:1.0.0-beta05 がリリースされました。バージョン 1.0.0-beta05 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • スマートフォンがサイレント モードのときに CameraX を初期化すると、アプリの起動時にクラッシュする問題を修正しました。InitializationException が発生すると、アプリがクラッシュするのではなく、CameraUnavailableException が初期化結果の ListenableFuture に設定されます。(I9909ab/149413835

Camera-Lifecycle バージョン 1.0.0-beta04

2020 年 5 月 27 日

androidx.camera:camera-lifecycle:1.0.0-beta04 がリリースされました。バージョン 1.0.0-beta04 に含まれるコミットについては、こちらをご覧ください

Camera-Lifecycle バージョン 1.0.0-beta03

2020 年 4 月 15 日

androidx.camera:camera-lifecycle:1.0.0-beta03 がリリースされました。バージョン 1.0.0-beta03 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • UseCase がゼロの場合に bindToLifecycle() を呼び出すと例外がスローされるという beta03 からのリグレッションを修正しました。これにより、UseCase をバインドせずに Camera を取得できなくなりました。
  • camera-core のリリースをサポートするための修正

Camera-Lifecycle バージョン 1.0.0-beta01

2020 年 2 月 26 日

androidx.camera:camera-lifecycle:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • 初期化時に ProcessCameraProvider を取得する際、デフォルトの設定が使用され、Application の拡張はオプションであることを記したキュメントを修正しました。(I5e395

Camera-Lifecycle バージョン 1.0.0-beta02

2020 年 4 月 1 日

androidx.camera:camera-lifecycle:1.0.0-beta02 がリリースされました。バージョン 1.0.0-beta02 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • camera-camera2:1.0.0-beta02 アーティファクトと camera-core:1.0.0-beta02 アーティファクトのバグ修正をサポートするように更新しました。

Camera-Lifecycle バージョン 1.0.0-alpha10

2020 年 2 月 10 日

androidx.camera:camera-lifecycle:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれるコミットについては、こちらをご覧ください

API の変更

  • BindToLifecycle、unbind、unbindAll の各メソッドに @MainThread アノテーションを追加しました。(I990d2

Camera-Lifecycle バージョン 1.0.0-alpha03

2020 年 1 月 22 日

androidx.camera:camera-lifecycle:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれるコミットについては、こちらをご覧ください

更新

  • Camera Core と Camera2 の変更をサポートするためのさまざまな修正と更新。

Camera-Lifecycle バージョン 1.0.0-alpha02

2019 年 12 月 18 日

androidx.camera:camera-lifecycle:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれるコミットについては、こちらをご覧ください

依存関係の変更

  • androidx.camera:camera-core:1.0.0-alpha08 を使用するように更新しました。

Camera-Lifecycle バージョン 1.0.0-alpha01

2019 年 12 月 4 日

androidx.camera:camera-lifecycle:1.0.0-alpha01 がリリースされました。Camera-Lifecycle バージョン 1.0.0-alpha01 に含まれるコミットについては、こちらをご覧ください

API に関する注

  • camera-lifecycle アーティファクトが追加され、LifeCycleCameraProvider インターフェースと ProcessCameraProvider と呼ばれる実装が提供されます。この実装は、以前の CameraX クラスの多くの機能を Core で提供し、getInstance() メソッドを介して取得されます。
  • CameraX を使用するには、アプリに Camera-Lifecycle ライブラリを含める必要があります。
  • ProcessCameraProvider を使用して CameraX の初期化を実行する方法については、camera-core セクションの注をご覧ください。

Camera-Extensions と Camera-View バージョン 1.0.0

Camera-Extensions バージョン 1.0.0-alpha16

2020 年 9 月 16 日

androidx.camera:camera-extensions:1.0.0-alpha16 がリリースされました。バージョン 1.0.0-alpha16 に含まれる commit については、こちらをご覧ください

バグの修正

  • カメラ インスタンスで拡張機能の有効化とクエリに使用される Extensions オブジェクトを取得するメソッドを ExtensionsManager に追加しました。(I4fb7e

Camera-View バージョン 1.0.0-alpha16

2020 年 9 月 16 日

androidx.camera:camera-view:1.0.0-alpha16 がリリースされました。バージョン 1.0.0-alpha16 に含まれる commit については、こちらをご覧ください

API の変更

  • PreviewView#setDeviceRotationForRemoteDisplayMode()PreviewView#getDeviceRotationForRemoteDisplayMode() が削除されました。この 2 つのメソッドは、目的の回転がディスプレイの回転でない場合に、プレビューの回転をカスタマイズするために使用するものです(リモート ディスプレイなど)。ディスプレイ以外のプレビューの回転を処理するには、Preview#setTargetRotation() と新しく追加された PreviewView#getViewPort(targetRotation) を使用して目的の回転を設定するようになりました。(Ib62cc
  • createSurfaceProvider() の名前を getSurfaceProvider() に変更しました。このメソッドは常に Preview.SurfaceProvider の同じインスタンスを返します。(Iff83c

バグの修正

  • 拡張効果が有効であり、出力サーフェスでベンダー ライブラリの実装に特別な処理を必要とする場合、PreviewView で TextureView を使用するようにしました。(I0c3cc
  • プレビューの任意のターゲットを回転できます。変換情報は、新しい TranformationInfoListener コールバックを介して計算され、ユーザーに即時に返されます。(I21470

既知の問題

  • PreviewView で、エンドユーザーが PreviewView をクリックしたときに OnClickListener#onClick() が呼び出されません。タッチイベントが PreviewView#onTouchEvent() で誤って使用されます。この問題は次のリリースで修正される予定です。
  • PreviewView で ViewPort が使用されている場合、PreviewView#getMeteringPointFactory() から取得した MeteringPoint が間違っていることがあります。

Camera-Extensions バージョン 1.0.0-alpha15

2020 年 8 月 19 日

androidx.camera:camera-extensions:1.0.0-alpha15 がリリースされました。バージョン 1.0.0-alpha15 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • ExtensionsManager.init() メソッドは、0 個の引数を持つのではなく、Context をパラメータとして受け取るようになりました。(Ife754
  • Context.getApplicationContext() から Application オブジェクトを返さない Context を使用したときに、初期化がクラッシュしなくなりました。(I3d3c9b/160817073

    Camera-View バージョン 1.0.0-alpha15

    2020 年 8 月 19 日

androidx.camera:camera-view:1.0.0-alpha15 がリリースされました。バージョン 1.0.0-alpha15 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • DisplayOrientedMeteringPointFactoryCameraSelector ではなく CameraInfo のインスタンスを受け取るようになりました。これは、ファクトリがポイントを生成する Camera への直接マッピングが行われるようにするためです。DisplayOrientedMeteringPointFactory を使用するすべてのクラスも、CameraSelector ではなく CameraInfo のインスタンスを受け取ります。(I400c1
  • TextureViewMeteringPointFactory を削除しました。PreviewView は、TextureViewSurfaceView のどちらを使用しているかにかかわらず、測光ポイント ファクトリを作成するための公開 API(createMeteringPointFactory())を提供するようになりました。(Ide693
  • PreviewView の SURFACE_VIEW / TEXTURE_VIEW 実装モードの名前を PERFORMANCE / COMPATIBLE に変更しました。PERFORMANCE は元の SURFACE_VIEW モードで、COMPATIBLE は元の TEXTURE_VIEW モードです。(I0edc2
  • 画像キャプチャで、カメラの向きに基づいてメタデータ内の水平フリップフラグを上書きするようになりました。(I28499

Camera Extensions バージョン 1.0.0-alpha14

2020 年 7 月 22 日

androidx.camera:camera-extensions:1.0.0-alpha14 がリリースされました。バージョン 1.0.0-alpha14 に含まれるコミットについては、こちらをご覧ください

Camera-View バージョン 1.0.0-alpha14

2020 年 7 月 22 日

androidx.camera:camera-view:1.0.0-alpha14 がリリースされました。バージョン 1.0.0-alpha14 に含まれるコミットについては、こちらをご覧ください

Camera-Extensions バージョン 1.0.0-alpha13

2020 年 6 月 24 日

androidx.camera:camera-extensions:1.0.0-alpha13 がリリースされました。バージョン 1.0.0-alpha13 に含まれるコミットについては、こちらをご覧ください。

バグの修正

  • カメラ ID と CameraCharacteristics でカメラをフィルタリングするための試験的なインターフェースを追加しました。(I28f61

Camera-View バージョン 1.0.0-alpha13

2020 年 6 月 24 日

androidx.camera:camera-view:1.0.0-alpha13 がリリースされました。バージョン 1.0.0-alpha13 に含まれるコミットについては、こちらをご覧ください。

バグの修正

  • バインドされた直後に Lifecycle が DESTROYED 状態に移行する LifecycleOwner にバインドする場合、CamleView が IllegalArgumentException でクラッシュすることがなくなりました。DESTROYED 状態の Lifecycle をバインドしても、カメラを開こうとしません。(I7c2b8
  • CameraView.getPreviewStreamState() を通じて PreviewView StreamState を使用できるようになりました(I21a2b)。

Camera-Extensions バージョン 1.0.0-alpha12

2020 年 6 月 10 日

androidx.camera:camera-extensions:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • スマートフォンがサイレント モードのときに CameraX を初期化すると、アプリの起動時にクラッシュする問題を修正しました。InitializationException が発生すると、アプリがクラッシュするのではなく、CameraUnavailableException が初期化結果の ListenableFuture に設定されます。(I9909ab/149413835

Camera-View バージョン 1.0.0-alpha12

2020 年 6 月 10 日

androidx.camera:camera-view:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • プレビュー サーフェスに表示されるコンテンツのビットマップ表現を返す PreviewView#getBitmap() API を追加しました。(I9b500b/157659818

Camera-Extensions バージョン 1.0.0-alpha11

2020 年 5 月 27 日

androidx.camera:camera-extensions:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれるコミットについては、こちらをご覧ください

Camera-View バージョン 1.0.0-alpha12

2020 年 6 月 10 日

androidx.camera:camera-view:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれるコミットについては、こちらをご覧ください

新機能

API の変更

バグの修正

  • プレビュー サーフェスに表示されるコンテンツのビットマップ表現を返す PreviewView#getBitmap() API を追加しました。(I9b500b/157659818

Camera-View バージョン 1.0.0-alpha11

2020 年 5 月 27 日

androidx.camera:camera-view:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれるコミットについては、こちらをご覧ください

API の変更

  • プレビューがストリーミングされているかどうかをアプリが監視できるようにする PreviewView#getPreviewStreamState API を追加しました。また、PreviewView が TEXTure_VIEW モードの場合は、STREAMING 状態によりプレビュー画像の表示が保証されます。(Ic0906b/154652477
  • アプリがリモート表示モードで実行されている場合に変換計算用のデバイス回転を提供する PreviewView#setDeviceRotationForRemoteDisplayMode() API を追加しました。(I59b95b/153514525

バグの修正

  • Android 7.0 以下を搭載する FULL/LIMITED/LEVEL_3 カメラでプレビューに歪みが生じる問題を修正しました。Android バージョンが 7.0 以下の場合、ImplementationMode#TEXTURE_VIEW モードが強制的に使用されます。(I83e30b/155085307
  • PreviewView#createSurfaceProvider() から CameraInfo パラメータを削除し、PreviewViewSurfaceRequest から内部的にそれを取得するようにしました。(If18f0b/154652477
  • CameraView で、VideoCapture のデフォルトのアスペクト比を 16:9 に修正しました。(Ie6a7bb/153237864
  • Preview フラグメントをスワイプアウトしてから ViewPager2 にスワイプバックすると PreviewView 画面が黒くなる問題を修正しました。また、removeView(previewview) の後に addView(previewView) を呼び出す場合の問題も修正しました。(Iab555b/149877652b/147354615
  • CameraView#takePicture() API を更新して、画像を UriOutputStream に保存できるようにしました。また、テストアプリを更新して、Uri を正規の例として使用するようにしました。(Ia2459b/153607583
  • ScaleType 属性を設定することにより、XML レイアウトから PreviewView のスケールタイプを設定できるようになりました。(I08565b/153015659
  • CameraView.ScaleType が削除されました。CameraView でスケールタイプを設定または取得するには、代わりに PreviewView.ScaleType を使用してください。(Ia8974b/153014831
  • PreviewView に背景色が設定されていない場合は、背景色を設定します。これにより、プレビュー ストリームの開始前に、その背後にコンテンツが見える問題を回避できます。(I09fad

Camera-Extensions バージョン 1.0.0-alpha10

2020 年 4 月 15 日

androidx.camera:camera-extensions:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれるコミットについては、こちらをご覧ください。

バグの修正

  • Camera-Core のリリースをサポートするように修正しました。

Camera-View バージョン 1.0.0-alpha10

2020 年 4 月 15 日

androidx.camera:camera-view:1.0.0-alpha010 がリリースされました。バージョン 1.0.0-alpha010 に含まれるコミットについては、こちらをご覧ください。

バグの修正

  • PreviewView の surfaceView 実装が特定のデバイスでうまく動作せず、プレビューを再開した後にアプリがクラッシュしてしまうという以前の既知の問題を修正しました。(I5ed6b

Camera-Extensions バージョン 1.0.0-alpha09

2020 年 4 月 1 日

androidx.camera:camera-extensions:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれるコミットについては、こちらをご覧ください。

バグの修正

  • camera-camera2:1.0.0-beta02camera-core:1.0.0-beta02、および camera-lifecycle:1.0.0-beta02 アーティファクトのバグ修正をサポートするように更新しました。

Camera-View バージョン 1.0.0-alpha09

2020 年 4 月 1 日、androidx.camera:camera-view:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれるコミットについては、こちらをご覧ください。

既知の問題

  • ImplementationMode.SURFACE_VIEWPreviewView で使用すると、特定のデバイスではうまく動作しない場合があります。これは、プレビューで使用する SurfaceView は、その中にあるウィンドウのライフサイクルが停止したときにそのサーフェスを無効にし、ライフサイクルが再起動したときにカメラを再起動し、SurfaceView のサーフェスが再び有効になる前にプレビューを再開しようとする可能性があるためです。現時点では、ImplementationMode.TEXTURE_VIEW を使用してください。

API の変更

  • PreviewView.setImplementationMode() の名前を PreviewView.setPreferredImplementationMode() に変更しました。
  • PreviewView.getImplementationMode() の名前を PreviewView.getPreferredImplementationMode() に変更しました。
  • PreviewView.getSurfaceProvider()PreviewView.createSurfaceProvider(CameraInfo) に置き換えました。可能な場合は、ImplementationMode.SURFACE_VIEW を使用してプレビューを最適化するために使用できる CameraInfo インスタンスを取得します。null インスタンスが渡された場合、または優先実装モードを ImplementationMode.TEXTURE_VIEW に設定した場合は、ImplementationMode.TEXTURE_VIEW が内部的に使用されます。
  • 次のコードサンプルは、PreviewView で以前使用されていたプレビューのユースケース使用例を示しています。

    preview.setSurfaceProvider(previewView.previewSurfaceProvider)
    cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    

    現時点では、次のように記述できます。

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • @UiThread アノテーションが PreviewView.getSurfaceProvider() に追加されました。つまり、メインスレッドから呼び出す必要があります。(I192f3

  • プレビューのスケールタイプを設定できる PreviewView.setScaleType() を追加しました。PreviewView.ScaleType のいずれかの値を受け入れ、デフォルトは PreviewView.ScaleType.FILL_CENTER です。

  • PreviewView.getScaleType() を追加しました。

  • XML レイアウトで implementationMode 属性を使用して PreviewView の実装モードを設定するサポートを削除しました。

  • createMeteringPointFactory() API を PreviewView に追加して、PreviewView の (x, y) を MeteringPoint に変換するサポートを追加しました。(Ib36d7

バグの修正

  • PreviewView のサイズ変更後に誤ったプレビューが表示される問題を修正しました。(I71101

Camera-Extensions バージョン 1.0.0-alpha08

2020 年 2 月 26 日

androidx.camera:camera-extensions:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれるコミットについては、こちらをご覧ください。

Camera-View バージョン 1.0.0-alpha08

2020 年 2 月 26 日

androidx.camera:camera-view:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれるコミットについては、こちらをご覧ください。

バグの修正

  • SurfaceRequest.provideSurface()ListenableFutureExecutorCallback に変更しました。これにより provideSurface() での例外の処理が不要になることで API が簡素化され、provideSurface() コールバックをキャンセルできなくなります。これは、サーフェスのリリースが早すぎるために発生する古いデバイスでのクラッシュを防ぐためのものです。SurfaceRequest.Result オブジェクトは、SurfaceRequest が指定された Surface をどのように使用するかを追跡するために使用されるようになりました。(I7854b
  • SurfaceRequest.setSurface(Surface) の名前を SurfaceRequest.provideSurface(Surface) に、SurfaceRequest.setWillNotComplete() の名前を SurfaceRequest.willNotProvideSurface() に変更しました。(I224fe
  • デフォルトの CameraXConfig プロバイダを設定するフラグを保持することにより、ProGuard を有効にしたアプリのバリアントの初期化を修正しました。(I2d6c1

Camera-Extensions バージョン 1.0.0-alpha07

2020 年 2 月 10 日

androidx.camera:camera-extensions:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれるコミットについては、こちらをご覧ください。

バグの修正

  • 以前に ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() で渡されていた引数は、単一の引数 ImageCaptureException(以前に渡されていた情報をすべて含む)に変更されました。
  • ImageCapture.OnImageSavedCallback.onImageSaved() で以前に渡されていた file 引数は削除されました。(I750d2

Camera-View バージョン 1.0.0-alpha07

2020 年 2 月 10 日

androidx.camera:camera-view:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれるコミットについては、こちらをご覧ください。

API の変更

  • PreviewViewTextureView 実装で、TextureView のサイズをカメラセンサーの出力サイズに設定してから、親の PreviewView を表示するようにスケーリングするようになりました。カメラ プレビューで UI 全体(画面全体など)を表示したい場合は、PreviewView のサイズを固定値に設定したり、コンテンツをラップしたりしないでください。属性「wrap_content」など)を使用すると、カメラ プレビューが PreviewView の一部のみに表示されることがあります(カメラセンサーの出力サイズが小さい場合)。代わりに、PreviewView を親と同じ大きさに設定する必要があります(属性「match_parent」などを使用します)。(1204869

バグの修正

  • UriOutputStream に画像を保存できるように ImageCapture を更新しました。オーバーロードされた takePicture メソッドを 1 つに統合しました。典型例として Uri を使用するようテストアプリを更新しました。(Ia3bec
  • Preview.PreviewSurfaceProvider の名前が Preview.SurfaceProvider に変更されました。SurfaceProvider ではデベロッパーが独自の ListenableFuture を作成する必要がなくなり、新しい SurfaceRequest オブジェクトを介して Surface が提供されるようになりました。Preview.getPreviewSurfaceProvider() メソッドは、PreviewPreviewView などの他のクラスとペア設定される場合に悪用される可能性があるため、削除されました。(I20105
  • 以前に ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() で渡されていた引数は、単一の引数 ImageCaptureException(以前に渡されていた情報をすべて含む)に変更されました。
  • ImageCapture.OnImageSavedCallback.onImageSaved() で以前に渡されていた file 引数は削除されました。(I750d2
  • API が CameraInfogetZoomRatio()getMaxZoomRatio()getMinZoomRatio()、および getLinearZoom() メソッドで更新され、ZoomState インスタンスを返す getZoomState() に統合されました。(Ib19fe

Camera Extensions バージョン 1.0.0-alpha06

2020 年 1 月 22 日

androidx.camera:camera-extensions:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれるコミットについては、こちらをご覧ください

更新

  • Camera Core と Camera2 の変更をサポートするためのさまざまな修正と更新。

Camera-View バージョン 1.0.0-alpha06

2020 年 1 月 22 日

androidx.camera:camera-view:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれるコミットについては、こちらをご覧ください

更新

  • Camera Core と Camera2 の変更をサポートするためのさまざまな修正と更新。

Camera Extensions バージョン 1.0.0-alpha05

2019 年 12 月 18 日

androidx.camera:camera-extensions:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれるコミットについては、こちらをご覧ください

バグの修正

  • 内部 Camera Core API に合わせて更新されました。

Camera-View バージョン 1.0.0-alpha05

2019 年 12 月 18 日

androidx.camera:camera-view:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれるコミットについては、こちらをご覧ください

既知の問題

  • PreviewView の使用時に、アスペクト比が正しくない場合があります(b/146215202

新機能

  • SurfaceTexture のライフサイクルを TextureView サーフェスのカメラの使用と同期させる、PreviewView.TextureViewImplementation という新しいクラスを実装しました。

Camera-Extensions バージョン 1.0.0-alpha04

2019 年 12 月 4 日

androidx.camera:camera-extensions:1.0.0-alpha04 がリリースされました。camera-extensions のバージョン 1.0.0-alpha04 に含まれるコミットについては、こちらをご覧ください

API の変更

  • 拡張機能の可用性の確認と有効化により、CameraSelector を入力パラメータとして使用できるようになりました。これは、ユースケースのバインドに使用されるのと同じ CameraSelector である必要があります。

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • 拡張機能ライブラリを使用する前に拡張機能を初期化する必要があります。

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

Camera-View バージョン 1.0.0-alpha04

2019 年 12 月 4 日

androidx.camera:camera-view:1.0.0-alpha04 がリリースされました。camera-view のバージョン 1.0.0-alpha04 に含まれるコミットについては、こちらをご覧ください

API の変更

  • PreviewView クラスは、Preview ユースケースからの出力をアプリで簡単に表示するために用意されています。
  • PreviewView はレイアウトに含めることができます。

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • PreviewView は、Preview ユースケースを簡単に接続するための PreviewSurfaceProvider を提供します。

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • ZoomLevel」は、API 命名規則により「ZoomRatio」になりました。

  • メソッドの一部のパラメータについて、null 可能性が変更されました。

Camera-Extensions と Camera-View バージョン 1.0.0-alpha03

2019 年 10 月 9 日

androidx.camera:camera-extensions:1.0.0-alpha03androidx.camera:camera-view:1.0.0-alpha03 がリリースされました。camera-extensions:1.0.0-alpha03 に含まれるコミットと、camera-view:1.0.0-alpha03 に含まれるコミットがあります。

新機能

  • 拡張機能のコンテキスト イニシャライザを追加しました。拡張機能のバージョンを 1.1.0 に変更しました。

Camera-Extensions と Camera-View バージョン 1.0.0-alpha02

2019 年 9 月 5 日

androidx.camera:camera-extensions:1.0.0-alpha02androidx.camera:camera-view:1.0.0-alpha02 がリリースされました。camera-extensions:1.0.0-alpha02 に含まれるコミットと、camera-view:1.0.0-alpha02 に含まれるコミットがあります。

  • PreviewImageProcessorImpl がタイムスタンプを正しく実装していることを確認するテストを追加しました。
  • Nexus 5(API レベル 21)での ExtensionTest テストの失敗を修正し、プレビューを利用できるようにしました。

Camera-Extensions と Camera-View バージョン 1.0.0-alpha01

2019 年 8 月 7 日

androidx.camera:camera-extensions:1.0.0-alpha01androidx.camera:camera-view:1.0.0-alpha01 がリリースされました。camera-extensions:1.0.0-alpha01 に含まれるコミットと、camera-view:1.0.0-alpha01 に含まれるコミットがあります。

  • サポートされているデバイスのエフェクトにアクセスするための、今後の Camera Extensions 用の新しいライブラリ。このライブラリは作業進行中です。
  • 新しいカメラビュー クラス。このライブラリは作業進行中です。