透過集合功能整理內容 你可以依據偏好儲存及分類內容。

CameraX

CameraX 是 Jetpack 的一項新增功能,方便您在應用程式中新增相機功能。這個程式庫提供許多相容性修正和變通方法,可協助您確保開發人員在不同裝置上享有一致的體驗。

這個表格列出 androidx.camera 群組中的所有構件。

構件 穩定版 候選版 Beta 版 Alpha 版
camera-camera2 1.1.0 - 1.2.0-beta01 -
camera-core 1.1.0 - 1.2.0-beta01 -
camera-extensions 1.1.0 - 1.2.0-beta01 -
camera-lifecycle 1.1.0 - 1.2.0-beta01 -
camera-mlkit-vision - - 1.2.0-beta01 -
camera-view 1.1.0 - 1.2.0-beta01 -
camera-video 1.1.0 - 1.2.0-beta01 -
本程式庫上次更新日期:2022 年 8 月 24 日

裝置測試

我們在研究室中為許多裝置完成 CameraX 測試。如要查看目前研究室中已完成測試的裝置清單,請參閱已完成研究室測試的 CameraX 裝置

宣告依附元件

如果要為 CameraX 新增依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.2.0-beta01"
  // 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 VideoCapture library
  implementation "androidx.camera:camera-video:${camerax_version}"
  // If you want to additionally use the CameraX View class
  implementation "androidx.camera:camera-view:${camerax_version}"
  // If you want to additionally add CameraX ML Kit Vision Integration
  implementation "androidx.camera:camera-mlkit-vision:${camerax_version}"
  // If you want to additionally use the CameraX Extensions library
  implementation "androidx.camera:camera-extensions:${camerax_version}"
}

Kotlin

dependencies {
    // CameraX core library using the camera2 implementation
    val camerax_version = "1.2.0-beta01"
    // 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 VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

意見回饋

您的意見可協助我們改善 Jetpack。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.2 版本

1.2.0-beta01 版本

2022 年 8 月 24 日

發布 androidx.camera:camera-*:1.2.0-beta011.2.0-beta01 版包含以下修訂項目。

新功能

  • 新程式庫 camera-mlkit-vision。可輕鬆整合 CameraX 與許多 MLKit 功能,包括條碼掃描、臉部偵測、文字偵測等。請在這裡查看程式碼範例。
  • 新實驗性 Zero-Shutter Lag API。最佳化拍攝管道以縮短延遲時間,同時維持良好的影像品質。將拍攝模式設為 CAPTURE_MODE_ZERO_SHUTTER_LAG 時,相較於其他拍攝模式,點按快門按鈕和拍照之間的延遲時間會大大縮短。如果裝置不支援 ZERO_SHUTTER_LAG,則切換回 CAPTURE_MODE_MINIMIZE_LATENCY。
  • ImageAnalysis.AnalyzerMLKitAnalyzer 設為官方 API。
  • 公開 API,用於設定已儲存影片的位置中繼資料。
  • ImageAnalysis.Analyzer#getTargetResolutionOverride() 重新命名為 ImageAnalysis.Analyzer#getDefaultTargetResolution()

修正錯誤

  • 已修正 Alps k61v1_basic_ref 拍照問題。從 HAL 擷取的 JPEG 圖片包含不正確的 Exif 中繼資料。Exif 中繼資料沒有 0xffd9 或 0xffda 標記,可讓 ExifInterface 正確剖析屬性。只要以 YUV 格式拍攝圖片,然後壓縮為 JPEG 輸出圖片,就可以解決這個問題 (I45abb)。

1.2.0-alpha04 版本

2022 年 7 月 27 日

已發布 androidx.camera:camera-*:1.2.0-alpha041.2.0-alpha04 版本包含以下修訂項目。

API 異動

  • ImageAnalysis.Analyzer#getTargetResolutionOverride() 重新命名為 ImageAnalysis.Analyzer#getDefaultTargetResolution()。行為也會變更,因此此方法傳回的值可以被 ImageAnalysis#setTargetResolution() 的值覆寫 (If1d36)。
  • 提供 API,用於設定已儲存影片的位置中繼資料。android.location.Location 物件可透過新的 API androidx.camera.video.OutputOptions.Builder.setLocation(Location) 設定 (I313a0b/204197544)。

修正錯誤

  • 修正使用解除繫結的預覽拍照時會發生的問題 (Ie70b6b/235119898)
  • 修正 Recorder 在無法使用音訊來源時嘗試錄製的異常終止 (I9f652)。

1.2.0-alpha03 版本

2022 年 6 月 29 日

發布 androidx.camera:camera-*:1.2.0-alpha031.2.0-alpha03 版本包含以下修訂項目。

API 異動

  • 移除 ImageAnalysis.AnalyzerMLKitAnalyzer 的實驗性註解。(I0ff22)

修正錯誤

  • 新增 5000 毫秒的自動對焦預設逾時時間,如果沒有取消 FocusMeteringAction 且 AF 元件未在此期間對焦,就可透過此逾時設定將 isFocusSuccessful 設為 False,以完成 AF 元件的工作。(Ibc2e3)
  • 修正使用解除繫結的預覽拍照時會發生的問題 (I1d3a2b/235119898)
  • 啟用進階延伸器實作,並將 CameraX 支援擴充功能介面版本更新為 1.2 版 (I92256)

1.2.0-alpha02 版本

2022 年 6 月 1 日

釋出 androidx.camera:camera-*:1.2.0-alpha021.2.0-alpha02 版本包含這些修訂版本。

新功能

  • 將 CameraX Zero-Shutter Lag API 公開為實驗版。

API 異動

  • ImageCapture 中新增 CAPTURE_MODE_ZERO_SHUTTER_LAG 擷取模式,並在 CameraInfo 中新增 isZslSupported 來查詢裝置功能。CAPTURE_MODE_ZERO_SHUTTER_LAG 模式旨在提供即時擷取的最少延遲時間。以環狀緩衝區為基礎導入,使用者按下按鈕拍照時,會快取中間擷取結果,以供日後重新處理。如果 {@link VideoCapture} 已繫結,或閃光燈模式未關閉,或 OEM 擴充功能已開啟,系統將自動停用此模式。(I9ae74)
  • 新增 ImageAnalysis.getBackgroundExecutor() 方法 (Icc945)

修正錯誤

  • 已修正 ImageCapture takePicture 方法將被舉報裝置上的手電筒關閉。(Ib5eb5b/228272227)
  • 已修正取得 CONTROL_ZOOM_RATIO_RANGE 特性時無法處理 AssertionError 的錯誤。(/Ia248a, b/231701345)

1.2.0-alpha01 版本

2022 年 5 月 18 日

發布 androidx.camera:camera-*:1.2.0-alpha011.2.0-alpha01 版本包含這些修訂版本。

新功能

  • 全新 camera-mlkit-vision 程式庫正式推出

修正錯誤

  • 修正啟用備用策略時,QualitySelector 無法錄製 UHD 超高畫質影片的問題。當 VideoCaptureImageCapture 繫結,並在完整或更高的硬體層級相機裝置上預覽時,就會發生這個問題。QualitySelector 的備用策略會導致 VideoCapture 無法正確取得 FHD 解析度。UHD 解析度實際上適用於此用途組合,建議採用。(I0e788b/230651237)
  • 修正 ImageCapture.takePicture()NullPointerException。(I92366b/230454568b/229766155)
  • 修正 androidx.camera.video.Recorder 的非同步暫停行為 (Ia8ce8)

Camera-Camera2、Camera-Core、Camera-Lifecycle 和 Camera-Video 1.1.0 版本

1.1.0 版本

2022 年 6 月 29 日

發布 androidx.camera:camera-*:1.1.01.1.0 版本包含以下修訂項目。

自 1.0.0 版本以來的重要異動

  • 將 View、Extension 和 Video Capture 等程式庫設為各自的第一個 RC 版本。從 1.1.0-beta01 開始,所有 CameraX 程式庫都會使用相同的版本號碼。如此一來,開發人員就能更輕鬆地追蹤版本,並降低大型版本相容性矩陣的複雜度。
  • 推出全新的公用 API 與功能,包括:
  • 新增官方的 camera-video 程式庫,以支援錄影用途。
  • YUV 轉換至 RGB 和旋轉功能 (ImageAnalysis.Builder.setOutputImageRotationEnabledsetOutputImageFormat)
  • 支援多視窗模式,方法是在相機被其他應用程式干擾後,允許 CameraX 應用程式恢復相機功能,並將焦點切回到應用程式。
  • 修正部分預覽問題,確保 CameraX 能在折疊式裝置上正常運作。
  • 已新增 CameraState API,並透過 CameraInfo 公開。
  • 新增 API ProcessCameraProvider.getAvailableCameraInfos(),以便直接擷取可用相機的相關資訊。
  • 啟用擴充功能時,為 ImageCapture#OnImageCapturedCallback 輸出 JPEG 格式。
  • 已在 CameraInfo 中新增 API isFocusMeteringSupported,可讓應用程式檢查目前相機是否支援指定的 FocusMeteringAction
  • 公開 getResolutionInfo API,以提供 Preview、ImageCaptureImageAnalysis 的解析度資訊。
  • 已新增 API ImageCapture.Builder#setJpegQuality,以便在拍照時變更輸出的 JPEG 圖片壓縮品質。
  • 已在公用 API 中新增 CameraSelector#filter,以根據 CameraSelector 篩選 CameraInfos 清單。
  • 已新增 Camera2CameraControl.clearCaptureRequestOptions 以清除現有的擷取要求選項。
  • 新增實驗性 API,可將 CameraController 與 MLKit 等外部圖像處理程式庫搭配使用。
  • 已新增實驗性 API CameraInfo#getCameraSelector(),以傳回該相機專屬的 CameraSelector
  • 將數個實驗性 API 升級為正式公開 API。
  • 已將實驗功能 API 的註解 @Experimental 取代為 @RequiresOptIn。如要呼叫實驗性 API,請使用 androidx.annotation.OptIn,而不要使用已淘汰的 androidx.annotation.experimental.UseExperimental。
  • 將下列實驗性 API 升級為官方 API:CameraXConfig.Builder#setAvailableCamerasLimiter()CameraXConfig.Builder#setMinimumLoggingLevel()CameraXconfig.Builder#setSchedulerHandler()CameraXConfig#getAvailableCamerasLimiter()CameraXConfig#getMinimumLoggingLevel()CameraXConfig#getCameraExecutor()CameraXConfig#getSchedulerHandler()
  • @ExperimentalCameraFilter API
  • 實驗性的曝光補償 API。
  • 升級 camera-core、camera-lifecycle 和 camera-video 適用的實驗性 UseCaseGroup API。新增用於自訂可視區域的 ViewPort#getLayoutDirectionViewPort.Builder#setLayoutDirectionViewPort.Builder#setScaleType
  • ExperimentalUseCaseGroupLifecycle 升級為正式公開 API。
  • 現有 API 異動
  • 已將 Renamed MediaStoreOutputOptions.getCollection 重新命名為 MediaStoreOutputOptions.getCollectionUri
  • ActiveRecording 已重新命名為「Recording」,以降低詳細程度。
  • 已將 QualitySelector 建立工具 API 變更為清單式 API。

修正錯誤

  • 修正在啟用擴充模式的情況下設定 ImageCapture#CAPTURE_MODE_MAX_QUALITY 模式時發生的 YuvToJpegProcessor EOFException 問題。
  • 修正因關閉影片錄製功能而導致轉碼器設定失敗的錯誤。
  • 修正以 Full HD 高畫質錄影時遭到拉長的預覽/影片長寬比。
  • 修正在部分裝置上暫停並繼續播放後音訊/視訊不同步的問題。
  • 已修正在輕觸即可對焦 (startFocusAndMetering) 期間,在低光源環境中,閃光燈模式設為 auto 或 always_on 時會觸發閃光燈的問題。

1.1.0-rc02 版本

2022 年 6 月 1 日

釋出 androidx.camera:camera-*:1.1.0-rc021.1.0-rc02 版本包含這些修訂版本。

修正錯誤

1.1.0-rc01 版本

2022 年 5 月 11 日

androidx.camera:camera-*:1.1.0-rc01 發布。1.1.0-rc01 版包含這些修訂版本。

新功能

  • 發布 camera-video、camera-view 和 camera-extension 的第一個 RC 版本

修正錯誤

  • 修正影片轉碼器在 VideoCapture<Recorder> 解除繫結時未發布,造成後續使用 VideoCapture<Recorder> 時無法使用 MediaCodec.CodecException 進行錄製 (尤其是在 API 21 至 22 裝置上) 的問題。(Ie7f68)
  • 修正 CameraExtensionsActivity 拍攝的圖像不會在 ImageCaptureTest 中刪除的問題

1.1.0-beta03 版本

2022 年 4 月 6 日

發布 androidx.camera:camera-*:1.1.0-beta031.1.0-beta03 版包含這些修訂項目。

API 異動

  • 限制 CaptureRequestOptions 建構函式。(I261b6)
  • 新增實驗性 API,可將 CameraController 與外部圖像處理程式庫搭配使用,例如 MLKit (I4ea71)

修正錯誤

  • 修正在多視窗旋轉裝置後且活動未重新啟動時,PreviewView 出現預覽方向有誤的問題。(I1ea36b/223488673)
  • 修正多視窗模式問題:如果 (1) 其他優先順序較高的應用程序開啟另一個相機,且 (2) 該裝置是 Samsung Android 12 裝置,則當焦點回到應用程式時,該應用程式將無法使用相機。(I7e9f2)
  • 針對在檢查閃光燈可用性時裝置當機的問題提供解決辦法。這些裝置將不提供手電筒功能。(If26a3b/216667482)
  • 修正應用程式使用擴充功能並啟用 Proguard 時發生的 AbstractMethodError 問題。(I7cbafb/222726805)
  • 強制在 Motorola razr 5G 裝置上停用散景擴充功能模式,解決該模式會造成黑色預覽畫面的問題。(I35d49)
  • 修正在部分 Samsung 裝置 (API 29 以下級別) 上暫停並繼續播放後音訊/視訊不同步的問題。(I64622b/202798609b/202798572)
  • 修正在 Sony G3125 上暫停並繼續播放後音訊/視訊不同步的問題。(I2a1a5b/202799148)
  • 修正錄音工具遇到 InvalidConfigException 時當機的問題。不過,這項修正只能防止應用程式當機,但無法解決導致 InvalidConfigException 的問題。如果仍無法設定 Recorder,應用程式會在開始錄製時收到錯誤回呼。(I89c29b/213617227)

外部貢獻

  • 由於 test-coroutines-lib 遷移,更新了 :compose:ui:ui-test API (updateApi) (I3366d)

1.1.0-beta02 版本

2022 年 2 月 23 日

androidx.camera:camera-*:1.1.0-beta02 發布。1.1.0-beta02 版包含這些修訂版本。

API 異動

  • 新增透過 Camera2Interop 指定實體相機 ID 的功能。(I5aed8)

修正錯誤

  • 已修正 Oppo Find N 上的延伸預覽問題。(I7d004)
  • 已修正 Galaxy J7 Prime 預覽扭曲失真的問題。(I4c500)
  • 使用相容的位元率尋找影片編碼器。(d969052)

1.1.0-beta01 版本

2022 年 1 月 26 日

發布 androidx.camera:camera-*:1.1.0-beta011.1.0-beta01 版本包含以下修訂項目。

新功能

  • 從 1.1.0-beta01 開始,所有 CameraX 程式庫都會使用相同的版本號碼。如此一來,開發人員就能更輕鬆地追蹤版本,並降低大型版本相容性矩陣的複雜度。

API 異動

  • 已新增 Camera2CameraControl.clearCaptureRequestOptions 以清除現有的擷取要求選項。(Ifa07d)

修正錯誤

  • 已修正部分 Android O (API 26) 早先裝置上錄影時發生異常終止的問題。(I88fdfb/212328261)
  • 已修正在 Samsung 裝置的前置鏡頭相機上使用 cameraControl#startFocusAndMetering() 時 AF 區域不正確的問題。(Ifbf59b/210548792)
  • 在 Pixel 3a/Pixel 3a XL 上使用手電筒做為閃光燈,以改善在昏暗環境下的速度和擷取到的影像品質。(Ib12b6b/211474332)
  • 在多視窗模式下,當相機遭到其他優先順序較高的應用程式干擾時,讓應用程式能恢復相機功能,並將焦點切回到應用程式。請注意,由於某些架構問題,焦點功能改變和相機重新開啟之間可能有些許延遲 (1 秒到 10 秒甚至更長時間)。(I4d092)

1.1.0-alpha12 版本

2021 年 12 月 15 日

androidx.camera:camera-*:1.1.0-alpha12 發布。1.1.0-alpha12 版包含這些修訂版本。

API 異動

  • 已從內部類別/介面中移除不必要的 @RequiresApi(21) 註解。(I8e286b/204917951)
  • QualitySelector 的品質常數和備用廣告策略常數已變更,現在會依類別物件表示。舉例來說,QualitySelector.QUALITY_HD 變更為 Quality.HDQualitySelector.FALLBACK_STRATEGY_LOWER 則變更為 FallbackStrategy.lowerQualityOrHigherThan(Quality) 傳回的執行個體。用於建立 QualitySelector 的 API 已變更為清單式 API。新的 API QualitySelector.fromOrderedList(List<Quality>) 會參照輸入品質清單的順序,而不是 QualitySelector.Procedure 建立的順序。已移除 QualitySelector.Procedure 類別。(I43343)
  • PendingRecording.withEventListener() 已移除,事件監聽器現在必須傳遞到 PendingRecording.start()。這個事件監聽器需求的目的是要處理 VideoRecordEvent.Finalize 事件中回報的非同步錯誤。(I1e71d)
  • 已將 ActiveRecording 重新命名為 Recording 以減少詳細程度。(I77ceb)

修正錯誤

  • 已修正在 Pixel 3a 和 Pixel 3a XL 上,昏暗環境下以 FLASH_AUTO 模式拍照的曝光不足問題。(I13f19b/205373142)
  • 請一律使用最新的顯示大小來決定 Resolution 的預覽畫面。(I4a694)
  • 已篩除沒有 REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE 的相機。提供 REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE 的相機只有每部相機裝置支援的最低功能組合。沒有 REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE 的相機可能會支援特殊功能,且不支援標準色彩輸出。CameraX 不支援這些相機的 PreviewImageCaptureImageAnalysisVideoCapture 用途。因此請篩除這類相機,避免誤用。(Ib8cda)
  • 結果集為空白時,CameraSelector#filter 不再擲回 IllegalArgumentException。(I27804)
  • 系統現在可根據原始設備製造商 (OEM) 的指定設定檔,以更聰明的方式選擇編碼器設定。(Iaeef0)
  • 修正在 Pixel1 上開始錄製 UHD 超高畫質影片後預覽會顯示交錯色線的問題。(I833c6b/205340278)

1.1.0-alpha11 版本

2021 年 11 月 17 日

androidx.camera:camera-*:1.1.0-alpha11 發布。1.1.0-alpha11 版包含這些修訂版本。

API 異動

  • 已在公用 API 中新增 CameraSelector#filter,以根據 CameraSelector 篩選 CameraInfos 清單。(I105d0)
  • 為 ImageAnalysis 設定新增 setOutputImageRotationEnabled API。使用者可以啟用 YUV/RGB 圖片緩衝區旋轉。旋轉角度是根據感應器旋轉和目標旋轉計算的相對旋轉角度,可以讓圖片保持在前方。

  • 為 ImageAnalysis 設定新增 setOutputImageRotationEnabled API。使用者可以啟用 YUV/RGB 圖片緩衝區旋轉。旋轉角度是根據感應器旋轉和目標旋轉計算的相對旋轉角度,可以讓圖片保持在前方。

    在 ImageInfo 中新增 getSensorToBufferTransformMatrix API。傳回的矩陣是從感應器座標對應到緩衝區座標,也就是從 CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE 值到 (0, 0, image.getWidth, image.getHeight)。此矩陣可用於將某個 {UseCase} 的座標對應到另一個的座標。例如,使用 ImageAnalysis 對應臉部偵測座標以便預覽。(I9ff1e)

  • 已新增 API ImageCapture.Builder#setJpegQuality,以在拍照時變更輸出 JPEG 圖片壓縮品質。(I8dcf4)

  • 已將 MediaStoreOutputOptions.getCollection 重新命名為 MediaStoreOutputOptions.getCollectionUri。(I16639)

修正錯誤

  • 已修正在輕觸即可對焦 (startFocusAndMetering) 期間,在低光源環境中,閃光燈模式設為 auto 或 always_on 時會觸發閃光燈的問題。(Id4c11)
  • 在 Pixel 2 XL / Pixel 3 XL 的 MINIMIZE_LATENCY 模式下,已停用 HDR+ 以縮短延遲時間。(Ib6270b/203505523)

外部貢獻

1.1.0-alpha10 版本

2021 年 10 月 13 日

androidx.camera:camera-*:1.1.0-alpha10 發布。1.1.0-alpha10 版包含這些修訂版本。

新功能

  • 已正式釋出 androidx.camera:camera-video:1.1.0-alpha10 做為影片的第一個 Alpha 版本。我們將在日後釋出的版本中修正幾項已知問題

API 異動

  • 已將 @RequiresApi(21) 註解新增至所有 CameraX 類別,並捨棄 AndroidManifest.xml 的 minSdkVersion。如此一來,camera-core 才能輕鬆整合到 minSdkVersion 少於 21、但想要有條件使用需要 API 21 以上程式碼路徑的應用程式。如為 minSdkVersion 21 或以上的應用程式,則無須採取任何行動。(Ie7f2eb/200599470)

修正錯誤

  • 擲回 InitializationException,讓應用程式可在建立 CameraCharacteristics 時,妥善處理 AssertionError。(Ibec79)

1.1.0-alpha09 版本

2021 年 9 月 29 日

發布 androidx.camera:camera-camera2:1.1.0-alpha09androidx.camera:camera-core:1.1.0-alpha09androidx.camera:camera-lifecycle:1.1.0-alpha091.1.0-alpha09 版包含這些修訂版本。

API 異動

  • API 不再為實驗功能,故已移除 ExperimentalUseCaseGroup 註解。(I01ef5)

修正錯誤

  • 修正以 MAXIMIZE_QUALITY 模式拍攝相片模糊的問題。(I173a9b/193823892)
  • 已修正 Samsung Galaxy J5 相機在昏暗環境下,閃光燈開啟/自動開關拍照後相機卡住的問題。(I3aab9)
  • 當 ImageCapture 需要裁剪時,根據指定的擷取模式,以指定的 JPEG 畫質等級壓縮輸出裁剪的圖片。如果擷取模式為 CAPTURE_MODE_MINIMIZE_LATENCY,則 JPEG 壓縮畫質為 95。如果擷取模式為 CAPTURE_MODE_MAXIMIZE_QUALITY,則 JPEG 壓縮畫質為 100。(Ieb37cb/142856426)

1.1.0-alpha08 版

2021 年 8 月 18 日

發布 androidx.camera:camera-camera2:1.1.0-alpha08androidx.camera:camera-core:1.1.0-alpha08androidx.camera:camera-lifecycle:1.1.0-alpha081.1.0-alpha08 版包含這些修訂版本。

新功能

  • 為圖片分析設定新增 setOutputImageFormat API。使用者可以選取 ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 或 ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888。根據預設,系統會選取 ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888。(I7902d)

API 異動

  • API 不再為實驗功能,故已移除 ExperimentalUseCaseGroupLifecycle 註解。(I17b85)

修正錯誤

  • Huawei P20 Lite 的固定預覽畫面太亮。這個問題只會在某些特殊預覽解析度搭配較大的放大值時發生。(Idefceb/192129158)
  • 修正在將閃光燈模式設為 FLASH_MODE_ON 後不久隨即拍照時,閃光燈無法在某些裝置上運作的問題。(Ieb49b)
  • 已修正如果「VideoCapture」、「ImageCapture」和「預覽」設有繫結,「預覽」功能會暫停運作一段時間的問題。(I56197b/193864120)
  • 允許 ImageAnalysis 選取大於 1080p 的解析度。有限等級以上的裝置若「ImageAnalysis」與「預覽」及「ImageCapture」設定繫結,就能支援「錄製」尺寸的解析度。捨棄的部分則是為 ImageCapture 選取的解析度,也必須是「錄製」尺寸的解析度。如要成功為 ImageAnalysis 選取「錄製」尺寸的解析度,應在 ImageCapture 和 ImageAnalysis 兩處設定「錄製」尺寸的目標解析度。這表示應用程式清楚瞭解權衡,且偏好 ImageAnlysis 採用較大的解析度,而非 ImageCapture 具有「最大」解析度。如需「錄製」、「最大」尺寸的定義和其他詳細資訊,請參閱 https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture。「錄製」尺寸是指相機裝置支援的錄製解析度上限 (由 CamcorderProfile 決定)。「最大」尺寸是指相機裝置針對該格式或 StreamConfigurationMap.getOutputSizes(int) 指定目標的最大輸出解析度。(I1ee97b/192911449)
  • 將 Exif 資訊加入擷取的圖片。(I01ff0b/193342619)
  • 在 ImageCapture 中,如果儲存的位置是「File」,傳回已儲存圖片的 URI。(Ib5b49b/149241379)
  • 已修正在許多裝置上,使用閃光燈拍照圖片昏暗的問題。(I4e510)

1.1.0-alpha07 版本

2021 年 7 月 21 日

發布 androidx.camera:camera-camera2:1.1.0-alpha07androidx.camera:camera-core:1.1.0-alpha07androidx.camera:camera-lifecycle:1.1.0-alpha071.1.0-alpha07 版包含這些修訂版本。

修正錯誤

  • 已修正 Samsung Galaxy Note 5 相機在昏暗環境下,閃光燈開啟/自動開關拍照後相機卡住的問題。(If6871)
  • 已修正擴充模式啟用且設定 ImageCapture#CAPTURE_MODE_MAX_QUALITY 模式時發生的 YuvToJpegProcessor EOFException 問題。(I538bdb/192017012)

1.1.0-alpha06 版本

2021 年 6 月 30 日

發布 androidx.camera:camera-camera2:1.1.0-alpha06androidx.camera:camera-core:1.1.0-alpha06androidx.camera:camera-lifecycle:1.1.0-alpha061.1.0-alpha06 版包含這些修訂版本。

API 異動

  • 升級 camera-core 的實驗功能曝光補償 API。(I08ee8)
  • 已在 CameraInfo 中新增 API isFocusMeteringSupport,可讓應用程式檢查目前相機是否支援指定的 FocusMeteringAction。(Ib45aeb/188606490)
  • 公開 getResolutionInfo API,以提供預覽」、「ImageCapture」和「ImageAnalysis」的解析度資訊。(I2b613b/188600718)
  • 將下列實驗功能 API 升級為正式 API:CameraXConfig.Builder#setAvailableCamerasLimiter()、CameraXConfig.Builder#setMinimumLoggingLevel()、CameraXconfig.Builder#setSchedulerHandler()、CameraXConfig#getAvailableCamerasLimiter()、CameraXConfig#getMinimumLoggingLevel()、CameraXConfig#getCameraExecutor()、CameraXConfig#getSchedulerHandler()。(I2ade2)
  • 公開 CameraProvider 介面,提供一組相機存取權。(I1a7b1)
  • 升級 camera-core、camera-lifecycle 及 camera-video 適用的實驗功能 UseCaseGroup API。已新增 ViewPort#getLayoutDirectionViewPort.Builder#setLayoutDirectionViewPort.Builder#setScaleType 來自訂可視區域。(I7cee8)

1.1.0-alpha05 版本

2021 年 6 月 2 日

發布 androidx.camera:camera-camera2:1.1.0-alpha05androidx.camera:camera-core:1.1.0-alpha05androidx.camera:camera-lifecycle:1.1.0-alpha051.1.0-alpha05 版包含這些修訂版本。

API 異動

  • 已移除 Camera2CameraFilter 類別。建議以 CameraFilter 選取相機,並視需要透過 Camera2CameraInfo 擷取 CameraCharacteristics 或其他 Camera2 相關資訊。(Ib887c)
  • ExperimentalCameraFilter API 目前已脫離實驗功能階段,成為正式 API。無需加註 OptIn 即可使用。(I4bc94)
  • 已新增透過 CameraInfo#getCameraState() 公開的相機狀態 API。(Ia86b4)
  • 已新增實驗功能 API CameraInfo#getCameraSelector(),會傳回相機專屬的 CameraSelector。(I77f9f)

修正錯誤

  • 已修正在部分 Android 11 裝置上 setZoomRate 中傳回 ListenableFuture 以及 setLinearZoom 無法完成的問題。(I716d7)
  • 加快相機外接切換裝置速度,並降低相機裝置的錯誤發生率。(I34c99)
  • 已將 ExperimentalUseCaseGroupLifecycle 換成ExperimentalUseCaseGroup。(I3b2efb/159033688)

1.1.0-alpha04 版

2021 年 4 月 21 日

發布 androidx.camera:camera-camera2:1.1.0-alpha04androidx.camera:camera-core:1.1.0-alpha04androidx.camera:camera-lifecycle:1.1.0-alpha041.1.0-alpha04 版包含這些修訂版本。

修正錯誤

  • 已修正多個執行緒同時存取相同集合造成的記憶體流失問題。記憶體流失可能會導致「預覽」執行個體保留「活動」或「片段」。(I7b4b8)
  • 已將實驗功能 API 的註解 @Experimental 取代為 @RequiresOptIn。如要呼叫實驗功能 API,請使用 androidx.annotation.OptIn 而非已淘汰的 androidx.annotation.experimental.UseExperimental。(Iff226)
  • 已修正閃光燈開啟/自動開關時 ImageCapture 在 Samsung Galaxy S7 拍出圖片偏白的問題。(I30001)
  • 已新增 CameraState API,並透過 CameraInfo 公開。(I75392)

1.1.0-alpha03 版本

2021 年 3 月 24 日

發布 androidx.camera:camera-camera2:1.1.0-alpha03androidx.camera:camera-core:1.1.0-alpha03androidx.camera:camera-lifecycle:1.1.0-alpha031.1.0-alpha03 版包含這些修訂版本。

修正錯誤

  • 啟用擴充模式時,ImageCapture#OnImageCapturedCallback 輸出 JPEG 格式。(I0d7b1)
  • 已修正 UMIDIGI BISON 裝置的初始化失敗。(I57d9eb/180818665)
  • 已修正 PreviewView 中的 Samsung A3 延伸預覽畫面。(Iacb30b/180121821)

1.1.0-alpha02 版本

2021 年 2 月 24 日

發布 androidx.camera:camera-camera2:1.1.0-alpha02androidx.camera:camera-core:1.1.0-alpha02androidx.camera:camera-lifecycle:1.1.0-alpha021.1.0-alpha02 版包含這些修訂版本。

API 異動

  • 新增 API ProcessCameraProvider.getAvailableCameraInfos(),以便直接擷取可用相機的相關資訊 (可以是裝置的所有相機,或由 CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector) 中提供的 CameraSelector 選取的相機)。(Ieac08)

修正錯誤

  • 現在 CameraX 會嘗試在初次嘗試時強制執行開啟相機,如果相機應用程式的優先順序較高,CameraX 可能就會從其他相機用戶端竊取相機。(Iab069b/175820568)
  • 已修正在 CameraXConfig 中使用 setAvailableCamerasLimiter 時 Robolectric 測試失敗的問題。(Ice307)
  • 如果圖片佇列在 ImageAnalysis 中達到上限,這項變更就會捕捉例外狀況。因此,您可能會發現其他用途發生凍結或遲緩的狀況,例如預覽凍結/遲緩,但應用程式並未停止運作。(Ic12dab/175851631)
  • 已修正只有「預覽」或「ImageCapture」設定繫結時 ExtensionErrorListener 的回報錯誤。(I5ae39)
  • 已修正 ImageCapture 效能迴歸問題,方法是先移除已儲存圖片儲存位置驗證,然後再拍照。進行此變更後,如果儲存目的地無效,則會花較久的時間收到失敗回應,這是因為系統會在拍照之後嘗試儲存圖片。(I1fd4eb/177061560)
  • 已修正 ImageCapture「File」類型為 OutputFileOptions 的效能迴歸問題。(I5164ab/177061560)
  • 已更新說明文件,建議避免使用程式庫程式碼中的 ProcessCameraProvider.configureInstance(...)。(Ib8a9f)

1.1.0-alpha01 版

2021 年 1 月 27 日

發布 androidx.camera:camera-camera2:1.1.0-alpha01androidx.camera:camera-core:1.1.0-alpha01androidx.camera:camera-lifecycle:1.1.0-alpha011.1.0-alpha01 版包含這些修訂版本。

修正錯誤

  • 已納入 SM-G930T 後置相機 JPEG 格式圖片間歇性毀損問題的變通方法。(I52001b/159831206)
  • 已修正所有支援預覽大小低於 640x480 且顯示大小超過 640x480 時發生的 IllegalArgumentException 問題。(I2a63cb/150506192)
  • 根據預設,沒有明確宣告公開資源 (例如透過 public.xml) 的程式庫中的資源目前設為不公開。(Ia1dccb/170882230)

Camera-Camera2、Camera-Core 和 Camera-Lifecycle 1.0.2 版本

1.0.2 版本

2021 年 9 月 29 日

發布 androidx.camera:camera-camera2:1.0.2androidx.camera:camera-core:1.0.2androidx.camera:camera-lifecycle:1.0.21.0.2 版含有這些修訂版本。

修正錯誤

  • 修正以 MAXIMIZE_QUALITY 模式拍攝相片模糊的問題。(I173a9b/193823892)
  • 已修正許多裝置上,使用閃光燈拍照圖片昏暗的問題。(I4e510)

Camera-Camera2、Camera-Core 和 Camera-Lifecycle 1.0.1 版本

1.0.1 版本

2021 年 7 月 21 日

發布 androidx.camera:camera-camera2:1.0.1androidx.camera:camera-core:1.0.1androidx.camera:camera-lifecycle:1.0.11.0.1 版包含這些修訂版本。

修正錯誤

  • 已修正在某些 Android 11 裝置上,setZoomRatio 中傳回 ListenableFuturesetLinearZoom 無法完成的問題。(I716d7)

  • 已修正在部分裝置上,相機卡在關閉相機狀態並導致黑色預覽畫面的問題。(I34c99)

Camera-Camera2、Camera-Core 和 Camera-Lifecycle 1.0.0 版本

1.0.0 版本

2021 年 5 月 5 日

發布 androidx.camera:camera-camera2:1.0.0androidx.camera:camera-core:1.0.0androidx.camera:camera-lifecycle:1.0.01.0.0 版本包含以下修訂項目

1.0.0 的主要功能

  • CameraX 支援預覽ImageCapture分析
  • CameraX 在方便使用的 API 當中管理相機生命週期
  • CameraX 的目標是提供相容性層,可修正 Android 相機生態系統中的許多問題

已知問題

1.0.0-rc05 版本

2021 年 4 月 21 日

發布 androidx.camera:camera-camera2:1.0.0-rc05androidx.camera:camera-core:1.0.0-rc05androidx.camera:camera-lifecycle:1.0.0-rc051.0.0-rc05 版包含這些修訂版本。

修正錯誤

  • 已修正閃光燈開啟/自動開關時 ImageCapture 在 Samsung Galaxy S7 拍出圖片偏白的問題。(I30001)

1.0.0-rc04 版本

2021 年 3 月 24 日

發布 androidx.camera:camera-camera2:1.0.0-rc04androidx.camera:camera-core:1.0.0-rc04androidx.camera:camera-lifecycle:1.0.0-rc041.0.0-rc04 版包含這些修訂版本。

修正錯誤

1.0.0-rc03 版本

2021 年 2 月 24 日

發布 androidx.camera:camera-camera2:1.0.0-rc03androidx.camera:camera-core:1.0.0-rc03androidx.camera:camera-lifecycle:1.0.0-rc031.0.0-rc03 版包含這些修訂版本。

修正錯誤

  • 修正 ProcessCameraProvider#getInstance 文件的格式錯誤
  • 已修正在 CameraXConfig 中使用 setAvailableCamerasLimiter 時 Robolectric 測試失敗的問題。
  • 已修正 ImageCapture 效能迴歸問題,方法是先移除已儲存圖片儲存位置驗證,然後再拍照。完成變更後,如果儲存目的地無效,儲存作業就會需要較長時間才能獲得失敗回應,因為在拍照後會嘗試儲存圖片
  • 如果圖片佇列在 ImageAnalysis 中達到上限,這項變更就會捕捉例外狀況。因此,您可能會發現其他用途發生凍結或遲緩的狀況,例如預覽凍結/遲緩,但應用程式並未停止運作。
  • 已納入 SM-G930T 後置相機 JPEG 格式圖片間歇性毀損問題的變通方法。(I52001b/159831206)
  • 如果圖片佇列在 ImageAnalysis 中達到上限,這項變更就會捕捉例外狀況。因此,您可能會發現其他用途發生凍結或遲緩的狀況,例如預覽凍結/遲緩,但應用程式並未停止運作。(Ic12dab/175851631)
  • 已修正在 CameraXConfig 中使用 setAvailableCamerasLimiter 時 Robolectric 測試失敗的問題。(Ice307)
  • 已修正 ImageCapture 效能迴歸問題,方法是先移除已儲存圖片儲存位置驗證,然後再拍照。進行此變更後,如果儲存目的地無效,則會花較久的時間收到失敗回應,這是因為系統會在拍照之後嘗試儲存圖片。(I1fd4eb/177061560)
  • 已修正 ImageCapture「File」類型為 OutputFileOptions 的效能迴歸問題。(I5164ab/177061560)

1.0.0-rc02 版本

2021 年 1 月 27 日

發布 androidx.camera:camera-camera2:1.0.0-rc02androidx.camera:camera-core:1.0.0-rc02androidx.camera:camera-lifecycle:1.0.0-rc021.0.0-rc02 版包含這些修訂版本。

修正錯誤

  • 已修正所有預覽支援大小小於 640x480 且顯示大小大於 640x480 時發生的 IllegalArgumentException 問題。(b/150506192)
  • 限制相機重新開啟的嘗試次數。開啟相機時嘗試從特定問題中復原時,CameraX 不會再嘗試無上限重新開啟相機,而會在重試 10 秒後停止。I435d2

  • 已修正所有支援預覽大小低於 640x480 且顯示大小超過 640x480 時發生的 IllegalArgumentException 問題。(I2a63cb/150506192)

1.0.0-rc01 版本

2020 年 12 月 16 日

發布 androidx.camera:camera-camera2:1.0.0-rc01androidx.camera:camera-core:1.0.0-rc01androidx.camera:camera-lifecycle:1.0.0-rc011.0.0-rc01 版包含這些修訂版本。

API 異動

  • 已將 CameraFilter 和 Camera2Filter 變更為納入 CameraInfo。(I6883d)
  • 已新增實驗功能類別 Camera2CameraControl,容許 Camera2 API 的動態互通性。(I45cf3)
  • 已將 Camera2CameraInfo#fromCameraInfo 重新命名為 #from。(Ia2bd6)
  • 已在 CameraXConfig 中新增實驗功能 setAvailableCamerasLimiter API,讓應用程式能避免將未使用的相機初始化,進而最佳化初始化延遲。(I6cf88)
  • 已新增實驗功能方法 CameraXConfig.Builder#setMinimumLoggingLevel(),允許設定 CameraX 記錄檔的最低記錄層級。如未設定,則預設為 Log#DEBUG。(Ic3245)

修正錯誤

  • 已納入 SM-G930V 後置相機 JPEG 格式圖片間歇性毀損問題的變通方法。(I5aca5b/159831206)
  • 修正 Samsung SM-A716 裝置上,在環境昏暗的情況下一律打開閃光燈時拍照接收不到結果的問題。(If98b2b/172036589)
  • 已修正呼叫 Preview.setSurfaceProvider(null) 無法停止「預覽」的問題。(I3ac18)
  • 已修正在部分裝置上擷取 4:3 圖片的方向問題。(I0e3fbb/171492111)

Camera Camera2、Core 和 Lifecycle 1.0.0-beta12 版本

2020 年 11 月 11 日

發布 androidx.camera:camera-camera2:1.0.0-beta12androidx.camera:camera-core:1.0.0-beta12androidx.camera:camera-lifecycle:1.0.0-beta121.0.0-beta12 版包含這些修訂版本。

修正錯誤

  • 停用在 Samsung A3 裝置上自動開關閃光燈功能,修正 Samsung A3 裝置以自動開關閃光燈 AE 模式拍照的異常終止問題。(Ia5fe3b/157535165)
  • 已修正在搭載 Android L 的 Nexus 4 裝置 (API 級別 21 和 22) 上延伸預覽的問題。(I4d407b/158749159)
  • OnImageCapturedCallback#onCaptureSuccess 基礎類別實作作業不會再關閉圖片。這是為了避免開發人員預期以外的行為。開發人員不應該依賴 super.onCaptureSuccess 關閉圖片。(Ifbf9c)
  • 已淘汰實驗功能註解的 AndroidX 變化版本,以與 Kotlin 保持一致。該註解已由 RequiresOptIn 註解取代,而支援 Java 的 Linter 則已更新為同時支援新的 Kotlin 註解和新的 AndroidX 變化版本。(I52495b/151331381)

Camera-Camera2 1.0.0-beta11 版本

2020 年 10 月 14 日

androidx.camera:camera-camera2:1.0.0-beta11 發布。1.0.0-beta11 版包含這些修訂版本。

新功能

  • 在 Android 11 以上版本裝置上支援 Android 11 CONTROL_ZOOM_RATIO 縮放 API (包含有效 CONTROL_ZOOM_RATIO_RANGE)。(I62cc6)

修正錯誤

  • 已修正相機 ID 是非整數相機 ID 時發生的 NumberFormatException 問題。(Ib2228)
  • 已改善 CameraX 初始化與 bindToLifecycle 的延遲問題。(I61dc5)
  • 建立 CaseCase 不必將 CameraX 初始化即可完成。一旦連結到「相機」執行個體,在 UseCase 上進行特定實作專用設定,對公用 API 來說為 ProcessCameraProvider.bindToLifecycle()。(Ia5411)
  • 如果在連接到「相機」執行個體之前呼叫,除非在「建構工具」或 CaseCase 上設定 targetRotation,否則 <UseCase>.getTargetRotation() 會傳回 Surface.ROTATION_0。(I80fcd)

Camera-Core 1.0.0-beta11 版本

2020 年 10 月 14 日

androidx.camera:camera-core:1.0.0-beta11 發布。1.0.0-beta11 版包含這些修訂版本。

新功能 - 在 Android 11 以上版本裝置上支援 Android 11 CONTROL_ZOOM_RATIO 縮放 API (包含有效 CONTROL_ZOOM_RATIO_RANGE)。(I62cc6)

修正錯誤

  • 已修正相機 ID 是非整數相機 ID 時發生的 NumberFormatException 問題。(Ib2228)
  • 建立 CaseCase 不必將 CameraX 初始化即可完成。一旦連結到「相機」執行個體,在 UseCase 上進行特定實作專用設定,對公用 API 來說為 ProcessCameraProvider.bindToLifecycle()。(Ia5411)
  • 如果在連接到「相機」執行個體之前呼叫,除非在「建構工具」或 CaseCase 上設定 targetRotation,否則 <UseCase>.getTargetRotation() 會傳回 Surface.ROTATION_0。(I80fcd)

Camera-Core 1.0.0-beta10 版本

2020 年 9 月 23 日

androidx.camera:camera-core:1.0.0-beta10 發布。1.0.0-beta10 版包含這些修訂版本。

修正錯誤

  • 修正驗證拍照專用檔案儲存目的地時發生的錯誤 (I8c565b/167697553)

Camera-Camera2 1.0.0-beta10 版本

2020 年 9 月 23 日

androidx.camera:camera-camera2:1.0.0-beta10 發布。1.0.0-beta10 版包含這些修訂版本。

修正錯誤

Camera-Camera2 1.0.0-beta09 版本

2020 年 9 月 16 日

androidx.camera:camera-camera2:1.0.0-beta09 發布。1.0.0-beta09 版本包含以下修訂項目。

API 異動

  • 相較於提供靜態方法,Camera2CameraInfo 會改為在建立時納入 CameraInfo 執行個體,以便從這個執行個體擷取 Camera2 相關資訊。(I5b844)

修正錯誤

  • 已修正平板電腦裝置上的目標長寬比問題。如果目標長寬比設為 AspectRatio.RATIO_16_9,則應選取 16:9 大小。(Ib7fcfb/151969438)
  • 擲回 InitializationException 可讓應用程式妥善處理建立 CameraCharacteristics 時發生的 AssertionError。(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 版本包含以下修訂項目。

API 異動

  • 已修正在 UseCaseGroup 上,可視區域標示為非空值的錯誤。開發人員應該能在不設定可視區域的情況下,建立可視區域。(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 版包含這些修訂版本。

修正錯誤

  • 已最佳化 bindToLifecycle,可在主執行緒上快速執行。(I1d57e)
  • DisplayOrientedMeteringPointFactory 接受 CameraInfo 執行個體而非 CameraSelector,因此可直接對應工廠會為其產生點的相機。使用 DisplayOrientedMeteringPointFactory 的所有類別也會納入 CameraInfo 執行個體而非 CameraSelector。(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 版本包含以下修訂項目。

API 異動

  • DisplayOrientedMeteringPointFactory 納入 CameraInfo 執行個體,而非 CameraSelector,因此可直接對應工廠會為其產生點的相機。使用 DisplayOrientedMeteringPointFactory 的所有類別也會納入 CameraInfo 執行個體,而非 CameraSelector。(I400c1)

修正錯誤

  • 如要擷取圖片,請依據相機方向覆寫中繼資料中的翻轉水平旗標。(I28499)
  • 使用不會從 Context.getApplicationContext() 傳回「應用程式」物件的結構定義時,初始化作業應不會再異常終止。(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)

修正錯誤

  • 已修正 StartFocusAndMetering 在 Samsung Galaxy S7 上無法成功對焦的問題。(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。這樣即可自訂 CameraXConfig,而無須在應用程式的應用程式類別中實作 CameraXConfig.Provider。(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 為空值的裝置上呼叫 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 的 javadocs。(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 的偵錯記錄檔。(I1a565, b/154422490)
  • 已修正即使閃光燈啟動時,拍攝的影像仍過暗的問題。(I5d9fab/149729613)
  • 修正 ImageProxyImageCapture 的緩衝區未反繞的錯誤。(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 異動

  • 新增實驗功能 API (CameraXConfig.Builder#setSchedulerHandler()),用於設定 CameraX 相機堆疊在內部使用的處理常式。這個新的 API 和 CameraXConfig.Builder#setCameraExecutor() 可以完全控制 CameraX 相機堆疊使用的執行緒。(I7bf32b/121160431)

修正錯誤

  • 修正 ImageAnalysisImageReaderProxy 關閉後存取 ImageProxy 的異常終止問題。這也會導致 Analyzer 收到的所有 ImageProxy 都必須在 ImageReaderProxy 關閉前先行關閉。(I4b299b/145956416b/154155377b/156357269)
  • 已從 PreviewView#createSurfaceProvider() 移除 CameraInfo 參數,PreviewView 現在會從 SurfaceRequest 內部擷取。(If18f0b/154652477)
  • 已修正使用採用虛擬語言代碼的裝置在使用應用程式時的自動初始化。(I3bef3b/154767663)
  • 已修正即使閃光燈啟動時,拍攝的影像仍過暗的問題。(I5d9fab/149729613)
  • 修正 ImageAnalysis 的問題:多次呼叫 setAnalyzer/clearAnalyzer 導致分析器無法接收要分析的圖片。(I6169fb/151605317b/153514544)
  • 修正 ImageProxyImageCapture 的緩衝區未反繞的錯誤。(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 版包含這些修訂版本。

修正錯誤

  • 已修正來自 beta03 的迴歸問題:如果呼叫 bindToLifecycle()UseCase 為零,會導致擲回例外狀況。這能避免在未繫結 UseCase 的情況下擷取 Camera

Camera-Camera2 1.0.0-beta02 版本

2020 年 4 月 1 日

androidx.camera:camera-camera2:1.0.0-beta02 發布。1.0.0-beta02 版包含以下修訂項目。

修正錯誤

  • 已修正 ImageCapture 產生的 ImageProxy 中的 ImageInfo.getRotationDegrees(),使其符合 EXIF 方向旋轉值。(Id4281b/150802561)
  • 使用預設的 CameraX/Camera2 實作時,不再需要在 build.gradle 內明確排序 CameraX 依附元件。如果需要宣告嚴格依附元件,現在可在建構檔案中納入所有 CameraX 依附元件。(I46e88)
  • 已修正顯示大小小於 640x480 的裝置發生 IllegalArgumentException 問題。(Ife3f2b/150506192)
  • 已修正 bindToLifecycle,只在該函式成功繫結時才會修改 UseCase。過去為了計算解析度而呼叫 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 版包含以下修訂項目。

修正錯誤

  • 已修正 ImageCapture 產生的 ImageProxy 中的 ImageInfo.getRotationDegrees(),使其符合 EXIF 方向旋轉值。(Id4281b/150802561)
  • 已修正 bindToLifecycle,只在該函式成功繫結時才會修改 UseCase。過去為了計算解析度而呼叫 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() 上的 ListenableFuture 替換成 ExecutorCallback。這表示 API 不再需要處理 provideSurface() 上的例外狀況,並強制執行 provideSurface() 回呼不得取消,藉此簡化 API。這是為了避免因過早釋出途徑,造成較舊裝置當機。SurfaceRequest.Result 物件現在用於追蹤 SurfaceRequest 如何使用提供的 Surface。(I7854b)
  • 已將 SurfaceRequest.setSurface(Surface) 重新命名為 SurfaceRequest.provideSurface(Surface),並將 SurfaceRequest.setWillNotComplete() 重新命名為 SurfaceRequest.willNotProvideSurface()。(I224fe)

修正錯誤

  • 已修正 ImageCapture.setTargetRotation() 變更目標旋轉值後,已存圖片長寬比不正確的問題。(I474eab/148763432)
  • 透過保留設定預設 CameraXConfig 提供者標記的旗標啟用 ProGuard,以此方式修正應用程式變化版本初始化的問題。(I2d6c1)
  • 已更新閃光燈模式 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 異動

  • 已更新 ImageCapture,允許將圖片儲存至 UriOutputStream。將超載的 takePicture 方法合而為一。已更新測試應用程式,以 Uri 做為標準範例。(Ia3bec)
  • Preview.PreviewSurfaceProvider 已重新命名為 Preview.SurfaceProviderSurfaceProvider 不再需要開發人員自行建立 ListenableFuture,且現在透過新的 SurfaceRequest 物件即可提供 Surface。由於 Preview 與其他類別 (例如 PreviewView) 配對使用時可能濫用,因此已將 Preview.getPreviewSurfaceProvider() 方法移除。(I20105)
  • getTargetRotation()getTargetName() 新增至 Preview。(Iceee7)
  • 已將 getTargetRotation()getBackpressureStrategy()getImageQueueDepth() 新增至 ImageAnalysis。(I9d6d9)
  • 已於 ImageCapture() 新增 getTargetRotation()getCaptureMode()。(I5bc17)
  • 先前在 ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() 中傳遞的引數現已取代為單一引數 ImageCaptureException,該引數仍包含先前傳遞的所有資訊。
  • 先前在 ImageCapture.OnImageSavedCallback.onImageSaved() 中傳遞的檔案引數已移除。(I750d2)
  • PreviewImageCapture 類別現已標示為最終版。(I2500b)
  • API 已更新,將 CameraInfogetZoomRatio()getMaxZoomRatio()getMinZoomRatio()getLinearZoom() 方法合併為 getZoomState(),進而傳回 ZoomState 執行個體。(Ib19fe)
  • 已從 CameraXConfig 移除 API 欄位 OPTION_TARGET_CLASSOPTION_TARGET_NAME,因為這些欄位僅供內部程式庫使用。已移除 CameraXConfig.Builder 的建構函式。(I96912)
  • 已移除應用程式必須擴充 Application 方可初始化 CameraX 的要求。現在只要 camera-camera2 構件納入應用程式的 build.gradle 中,就能以預設的 Camera2 設定初始化 CameraX。(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 互通性路徑,用來擷取 Camera2 相機 ID。您可以使用 Camera2CameraInfo.extractCameraId()CameraInfo 擷取相機 ID,以下程式碼範例說明如何使用:

    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 旗標以及 Display 參數的使用情況,改善 Javadoc 的對焦和計量 API。
  • 已擴充 setZoomRatiosetLinearZoom 的參考說明文件。

修正錯誤

  • 已修正關閉再開啟相機導致「先決條件」檢查失敗的問題。
  • 已修正使用手電筒及縮放 API 可能發生的 ConcurrentModificationException 問題。
  • 已修正問題:mod16 尺寸大小可用時,現在可以選取更接近要求解析度的解析度。
  • startFocusMeteringcancelFocusMetering 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 異動

  • 實驗功能:已新增 Camera2 互通性路徑,用於擷取相機 ID。

Camera-Core 1.0.0-alpha08 版本

2019 年 12 月 18 日

androidx.camera:camera-core:1.0.0-alpha08 發布。1.0.0-alpha08 版本包含以下修訂項目

已知問題

  • 使用 PreviewViewCameraView 的應用程式預覽長寬比可能有誤。部分「完整」裝置 (例如 Pixel2) 暫停或重新啟用後,就會發生這類情況。

修正錯誤

  • 已更新 FocusMeteringActionCameraControl 的說明文件。
  • 已為 enableTorch()getTorchState() 實作 TorchControl

API 異動

  • 已隱藏 IntDef,並將 IntDef 常數移至 IntDef 定義之外。
  • 已將 rotationDegreesOnImageCaptureCallback 類別移至 ImageInfo
  • 已將 rotationDegreesAnalyzer 類別移至 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 現可用於初始化及設定以 Camera2 為基礎的 CameraX 實作作業。如要進一步瞭解如何在初始化作業中使用此功能,請參閱版本資訊的 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 版包含這些修訂版本

請注意,在我們準備 Beta 版時,這個 Alpha 版本有幾項重大異動。建議您查看異動內容,並分享您對 CameraX Google 網路論壇的意見回饋。對於在 Play 商店應用程式中使用 CameraX 的開發人員,建議您先等待正式 Beta 版,然後再升級應用程式中的程式庫。

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() 以非同步方式取得,後者會傳回可監聽的 Future,並於完成時提供 ProcessCameraProvider。一般用途如 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 擷取相機供應者,而不會卡在 Future.get() 上。

    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()
    
  • 我們已更新「預覽」用途,以便接受應用程式所建立及管理的途徑,以確保 Android 最佳做法。強烈建議您使用 camera-view 套件提供的 PreviewView 檢視類別。

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • 如要瞭解如何附加應用程式代管途徑,請參閱說明文件。在這類情況下,應用程式會管理途徑的生命週期。

  • 重要資訊接收的圖片使用完畢後,ImageAnalysis 分析工具必須呼叫 image.close()。否則可能無法接收新圖片,或相機可能會停滯 (視背壓設定而定)。詳情請參閱參考文件

  • ImageAnalysis ImageReaderMode 現在已變更為背壓策略 intdef

  • ImageProxy.getImage() 已標示為實驗功能。應用程式應透過 @androidx.camera.core.ExperimentalGetImage 加註使用範例

  • 已移除 AnalyzerUIThread 註解規定。

  • 系統會加入 ImageAnalysis.clearAnalyzer() 函式來移除分析工具。

  • 包含超過 1 種方法的事件監聽器已重新命名為回呼:

    • ImageCapture.OnImageCapturedListener 現在是 ImageCapture.OnImageCapturedCallback
    • ImageCapture.OnImageSavedListener 現在是 ImageCapture.OnImageSavedCallback
    • VideoCapture.OnVideoSavedListener 現在是 VideoCapture.OnVideoSavedCallback
  • 列舉已變更為 IntDef

  • 已新增縮放控制項:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • 已新增 CameraInfo.hasFlashUnit(),用於判斷閃光燈/手電筒硬體是否存在。

  • 已移除 CameraInfo.isFlashAvailable()手電筒會覆寫閃光燈功能。詳情請參閱參考說明文件

  • 系統會將 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() 並接受列舉引數。這會設定包含 RATIO_4_3RATIO_16_9 選項的長寬比模式,而非任何長寬比。這樣就能更精確地反映相機只提供特定的長寬比,而非任意比例。
    • 目前唯一可用的比率是 16:9 和 4:3。如果是 1:1,就只有特定裝置的相機可提供這項比例,且解析度也會受限。設計 1:1 介面或處理程序的應用程式應使用更靈活的 16:9 或 4:3 選項,並且裁剪顯示畫面或處理子區域。
    • 這些長寬比將導向使用最大感應器區域。
  • 已新增 getTargetAspectRatio() 至用途設定 API,可傳回用途輸出的指定長寬比。
  • ImageCapture 的 setTargetAspectRatio(Rational aspectRatio) 方法已變更為 setTargetAspectRatioCustom(Rational aspectRatio)。設定完成後,ImageCapture 輸出會據此裁剪。

執行者 API

  • 下列函式接受執行者參數,可讓應用程式控管執行函式的執行者。
    • Preview.setOnPreviewOutputUpdateListener() API。如果該函式的執行程式不存在,就會在主執行緒上執行。
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

CameraInfo 已新增檢查閃光燈可用性及感應器旋轉 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 相關異動與修正錯誤

  • 長寬比:在每個用途中,應用程式只能呼叫 setTargetResolution()setTargetAspectRatio() 其中之一。對相同的建構工具同時呼叫兩者,就會傳回錯誤。
    • 一般來說,建議您根據應用程式的 UI 設計來使用 setTargetAspectRatio()。具體解析度會因用途而異。舉例來說,預覽畫面會接近螢幕解析度,拍照則提供高解析度的靜態圖像。詳情請參閱自動解析度表格
    • 使用 setTargetResolution() 來處理更具體的用途,例如需要最低 (為了節省運算力) 或最高解析度 (為了處理細節) 時。
  • 執行者 API:已從用途設定 API 中移除 setCallbackHandler() 呼叫。應用程式改將執行者設為其他各種設定回呼 API 中的參數。
  • 已針對各種函式更新空值註解。
  • 已修正造成相機開啟時擲回 java.lang.IllegalStateException at Camera$StateCallback.onError 的問題。
  • 已修正問題:應用程式要求較大或預設解析度時選取的解析度過低 (低於 640x480),導致預覽圖片過於笨重或模糊不清。特別需要較低解析度的應用程式可明確提出要求。
  • 已修正試圖啟動其他相機應用程式並返回後,相機顯示黑色畫面 (無法啟動相機) 的問題。
  • 已修正應用程式反覆啟動或停止時擲回以下錯誤的問題:java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • 已修正停用 ImageAnlysis 時發生的以下錯誤: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
  • 已利用「輕觸即可對焦」API 新增 CameraControl API

    • 已新增 API,以便透過 CameraX 取得相機的 CameraControl;依鏡頭朝向選取:

      CameraX.getCameraControl(LensFacing lensFacing)

    • 已新增 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()
  • 各種設定現在可接受空值參數,對應的 getter 也可以傳回空值。

  • 已修正問題:在不支援 AF/AE/AWB 設定的模擬器上進行測試。

  • 修正分析圖片時的旋轉異常終止錯誤。

  • 修正在旋轉或切換前後相機後,預覽畫面在開始啟動時顯示黑色畫面 (沒有相機資料) 的問題。

  • 已移除多項並行圖片分析用途的測試。為確保相容性,應用程式僅應附加單一圖片分析用途。

  • 新增針對 camera-testing 套裝組合 (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 內部根據裝置功能來考慮要求的解析度和長寬比時,都會先嘗試維持相同的長寬比 (由 setTargetAspectRatiosetTargetResolution 呼叫中的任一項進行判斷)
  • 系統會將解析度的「最接近 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 的建構構件現已發布為 Alpha 版本

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 實作作業
  • 測試修正方法,獲得更穩定的測試
  • 核心整合測試現在會顯示相片的拍攝時間
  • 已為執行者開發內部 compat 類別
  • 時間碼測試應用程式擷取圖片會等候先前動作完成,並提升穩定性

擴充功能

  • 已新增版本管理檢查
  • 其他測試涵蓋範圍 - 擴充功能事件回呼
  • 改善內部對應圖片和中繼資料
  • 修正測試應用程式中的模式切換問題

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/途徑放棄錯誤。
  • 已修正內部問題,確保擷取要求更新不會對所有途徑造成一致性影響
  • 在新應用程式執行個體中重新啟動用途時,提升穩定性
  • 內部架構異動,準備支援 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-beta11 版本

2020 年 10 月 14 日

androidx.camera:camera-lifecycle:1.0.0-beta11 發布。1.0.0-beta11 版包含這些修訂版本。

修正錯誤

  • 如果在連接到「相機」執行個體之前呼叫,除非在「建構工具」或 CaseCase 上設定 targetRotation,否則 <UseCase>.getTargetRotation() 會傳回 Surface.ROTATION_0。(I80fcd)

Camera-Lifecycle 1.0.0-beta10 版本

2020 年 9 月 23 日

androidx.camera:camera-lifecycle:1.0.0-beta10 發布。1.0.0-beta10 版包含這些修訂版本。

修正錯誤

Camera-Lifecycle 1.0.0-beta09 版本

2020 年 9 月 16 日

androidx.camera:camera-lifecycle:1.0.0-beta09 發布。1.0.0-beta09 版本包含以下修訂項目。

Camera-Lifecycle 1.0.0-beta08 版本

2020 年 8 月 19 日

androidx.camera:camera-lifecycle:1.0.0-beta08 發布。1.0.0-beta08 版包含這些修訂版本。

修正錯誤

  • 使用不會從 Context.getApplicationContext() 傳回「應用程式」物件的結構定義時,初始化作業應不會再異常終止。(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 異動

  • CameraX 現可在呼叫 ProcessCameraProvider#getInstance() 之前使用 ProcessCameraProvider#configureInstance() 進行設定。這可讓您自訂 CameraXConfig,而不必在應用程式的「應用程式」類別中導入 CameraXConfig.Provider。(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 版包含這些修訂版本。

修正錯誤

  • 已修正來自 beta03 的迴歸問題:如果呼叫 bindToLifecycle()UseCase 為零,會導致擲回例外狀況。這能避免在未繫結 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-beta02camera-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 異動

  • 已將 @MainThread 註解新增至 BindToLifecycle、unbind 和 unbindAll 方法。(I990d2)

Camera-Lifecycle 1.0.0-alpha03 版本

2020 年 1 月 22 日

發布 androidx.camera:camera-lifecycle:1.0.0-alpha031.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 類別的多項功能,並且可透過 getInstance() 方法取得。
  • 應用程式應包含 camera-lifecycle 程式庫,才能使用 CameraX。
  • 請參閱「camera-core」部分中的附註,瞭解如何使用 ProcessCameraProvider 執行 CameraX 初始化作業。

Camera-Extensions 和 Camera-View 1.0.0 版本

1.0.0-alpha32 版本

2021 年 12 月 15 日

androidx.camera:camera-extensions:1.0.0-alpha32androidx.camera:camera-view:1.0.0-alpha32 發布。1.0.0-alpha32 版包含這些修訂版本。

API 異動

修正錯誤

  • 禁止應用程式在繫結 VideoCapture 時啟用擴充功能模式。CameraX 擴充功能只支援 ImageCapturePreview。目前尚未支援 VideoCapture。如果應用程式繫結 VideoCapture 並啟用任何擴充功能模式,系統就會擲回 IllegalArgumentException。(I0d87b)
  • 結果集為空白時,CameraSelector#filter 不再擲回 IllegalArgumentException。(I27804)
  • 已將 ExtensionsManager#getInstance API 重新命名為 getInstanceAsync,因為其會傳回 ListenableFuture。函式名稱的非同步尾碼可以清楚顯示這是非同步函式。(I279d2)
  • ExtensionsManager#getEstimatedCaptureLatencyRange API 中移除解析度參數,因為使用者不知道 ImageCapture 用途支援哪些大小,也無法分辨傳回的延遲資訊適用於最大擷取輸出大小還是輸入解析度參數。(I74bb2)
  • ExtensionsManager 函式的 CameraProvider 參數移至 getInstance() API。如此一來,使用者就不必在每次呼叫 ExtensionsManager 函式時輸入 CameraProvider 參數。(Ic7e48)

1.0.0-alpha31 版本

2021 年 11 月 17 日

androidx.camera:camera-extensions:1.0.0-alpha31androidx.camera:camera-view:1.0.0-alpha31 發布。1.0.0-alpha31 版包含這些修訂版本。

API 異動

  • 已在公用 API 中新增 CameraSelector#filter,以根據 CameraSelector 篩選 CameraInfos 清單。(I105d0)

修正錯誤

  • 已修正在特定裝置上快速切換擴充功能模式時的異常終止問題。(Iebbef)

1.0.0-alpha30 版本

2021 年 10 月 13 日

androidx.camera:camera-extensions:1.0.0-alpha30androidx.camera:camera-view:1.0.0-alpha30 發布。1.0.0-alpha30 版包含這些修訂版本。

API 異動

  • 已將 @RequiresApi(21) 註解新增至所有 CameraX 類別,並捨棄 AndroidManifest.xml 的 minSdkVersion。如此一來,camera-core 才能輕鬆整合到 minSdkVersion 少於 21、但想要有條件使用需要 API 21 以上程式碼路徑的應用程式。如為 minSdkVersion 21 或以上的應用程式,則無須採取任何行動。(Ie7f2eb/200599470)

修正錯誤

  • 已修正啟用 Proguard 時發生的 AbstractMethodError 問題。(Iae468b/201177844)

1.0.0-alpha29 版

2021 年 9 月 29 日

androidx.camera:camera-extensions:1.0.0-alpha29androidx.camera:camera-view:1.0.0-alpha29 發布。1.0.0-alpha29 版包含這些修訂版本。

API 異動

  • API 不再為實驗功能,故已移除 ExperimentalUseCaseGroup 註解。(I01ef5)
  • 移除 RotationProvider#removeAllListeners()。請改用 RotationProvider#removeListener(...)。(Id9d4a)
  • 更新 RotationReceiver 類別:將 set/clear 事件監聽器變更為 add/remove/removeAll,移除預設會使用主執行緒的 setListener 變化版本,並新增方法註解。(Ib1669)

修正錯誤

  • 已將 ExtensionMode#BEAUTY 重新命名為 FACE_RETOUCH,以正確顯示擴充功能模式完成的事項。(I61f54b/198515274)
  • 已修正在一次活動中多次使用 CameraController 和 PreviewView,相機突然關閉的問題。(Ibfd18b/197539358)

1.0.0-alpha28 版本

2021 年 8 月 18 日

androidx.camera:camera-extensions:1.0.0-alpha28androidx.camera:camera-view:1.0.0-alpha28 發布。1.0.0-alpha28 版包含這些修訂版本。

API 異動

  • API 不再為實驗功能,故已移除 ExperimentalUseCaseGroupLifecycle 註解。(I17b85)
  • 已重構 RotationListener 並將其重新命名為 RotationProvider。我們會持續針對相同的功能提供略為不同的 API。(Idffc5)
  • 將 TAP_TO_FOCUS_UNSUCCESSFUL 重新命名為 TAP_TO_FOCUS_NOT_FOCUSED,將 TAP_TO_FOCUS_SUCCESSFUL 重新命名為 TAP_TO_FOCUS_FOCUSED。完成 OutputSize 最終版。(I099fa)

修正錯誤

  • 移除已淘汰的 <EffectName><UseCase>Extender 類別、ExtensionsErrorListener 和相關的 ExtensionManager API。(I3b8c3)

1.0.0-alpha27 版本

2021 年 7 月 21 日

androidx.camera:camera-extensions:1.0.0-alpha27androidx.camera:camera-view:1.0.0-alpha27 發布。1.0.0-alpha27 版包含這些修訂版本。

API 異動

  • 將原實驗功能可視區域 API 升級。移除 API 的實驗功能註解。(I717ea)
  • 已將 CoordinateTransform#getTransform 重新命名為 CoordinateTransform#transform,並更新 JavaDoc。(I864ae)

修正錯誤

  • 已修正 PreviewView PERFORMANCE 模式與 Compose UI 搭配使用時的延伸問題。(Ie1137b/183864890)

1.0.0-alpha26 版本

2021 年 6 月 30 日

androidx.camera:camera-extensions:1.0.0-alpha26androidx.camera:camera-view:1.0.0-alpha26 發布。1.0.0-alpha26 版包含這些修訂版本。

API 異動

  • 新增 CameraController#getTapToFocusState() 方法,以顯示最新的輕觸即可對焦結果。(Iaccb0)
  • 在 CameraController 中新增更多 camera-core 功能:適用於目標長寬比、目標解析度、拍攝模式、CameraControl 和自訂執行工具的 getter/setter。(Iea8f2)
  • 新增接收途徑旋轉變更的 RotationReceiver 類別。可用來在裝置固定於直向/橫向模式時,設定目標旋轉。(Ib278f)
  • 在 ExtensionManager 類別中公開新的 getEstimatedCaptureLatencyRange 公用 API。(I6a8ec)
  • 已淘汰 ExtensionsErrorListener。目前,這個介面只會用於監控在啟用擴充功能模式時,缺少「預覽」或「ImageCapture」的情況。CameraX 會自動新增額外的「預覽」或「ImageCapture」,讓擴充功能運作良好。之後系統即不再透過這個介面回報錯誤。(I47d9e)
  • 公開新的 ExtensionManager getInstance、isExtensionAvailable 和 getExtensionEnabledCameraSelector 公用 API,以及已淘汰的 <EffectName><UseCase>Extender 舊版類別和相關 API。(I329e6)

1.0.0-alpha25 版本

2021 年 6 月 2 日

androidx.camera:camera-extensions:1.0.0-alpha25androidx.camera:camera-view:1.0.0-alpha25 發布。1.0.0-alpha25 版包含這些修訂版本。

API 異動

  • ExperimentalCameraFilter API 目前已脫離實驗功能階段,成為正式 API。無需加註 OptIn 即可使用。(I4bc94)
  • 新增公用程式,用於轉換不同用途之間的座標。使用範例:轉換 ImageAnalysis 用途中偵測到的座標,並在預覽畫面中醒目顯示偵測到的物件。(I63ab1b/137515129)
  • 已移除 CameraViewCameraView 已由 CameraController 取代。請參閱遷移指南,瞭解如何遷移:(Id5005)

修正錯誤

  • ExperimentalUseCaseGroup 取代了 ExperimentalUseCaseGroupLifecycle。(I3b2efb/159033688)

1.0.0-alpha24 版本

2021 年 4 月 21 日

androidx.camera:camera-extensions:1.0.0-alpha24androidx.camera:camera-view:1.0.0-alpha24 發布。1.0.0-alpha24 版包含這些修訂版本。

修正錯誤

  • 已將實驗功能 API 的註解 @Experimental 取代為 @RequiresOptIn。如要呼叫實驗功能 API,請使用 androidx.annotation.OptIn 而非已淘汰的 androidx.annotation.experimental.UseExperimental。(Iff226)
  • 已修正在 Samsung J5 Prime 上的 PreviewView 變形問題。(Ib10b6)

Camera Extensions 和 View 1.0.0-alpha23 版本

2021 年 3 月 24 日

androidx.camera:camera-extensions:1.0.0-alpha23androidx.camera:camera-view:1.0.0-alpha23 發布。1.0.0-alpha23 版包含這些修訂版本。

API 異動

  • CameraView 已淘汰,請改用 LifecycleCameraController。請參閱遷移指南。(Idac2c)
  • 已將 FloatRange 註解新增至 setLinearZoom()。(I69971)

修正錯誤

  • 已固定要在 1.0.0 構件上仰賴的 camera-view 依附元件。需要 camera-view 不會再導致 Gradle 的依附元件解析方式將 camera-core、camera-camera2 及 camera-lifecycle 自動升級為最新的 1.1.0 構件,不過 camera-view 仍與這些構件相容 (若明確設為使用 1.1.0)。(Ic8fa1b/181599852)
  • 已修正 PreviewView 中的 Samsung A3 延伸預覽畫面。(Iacb30b/180121821)
  • 已修正在相機初始化之前無法設定相機選取器的問題。(Ic8bd0)

Camera Extensions 和 View 1.0.0-alpha22 版本

2021 年 2 月 24 日

androidx.camera:camera-extensions:1.0.0-alpha22androidx.camera:camera-view:1.0.0-alpha22 發布。1.0.0-alpha22 版包含這些修訂版本。

API 異動

修正錯誤

  • 已修正只有「預覽」或「ImageCapture」設定繫結時 ExtensionErrorListener 的回報錯誤。(I5ae39)

Camera Extensions 和 View 1.0.0-alpha21 版本

2021 年 1 月 27 日

androidx.camera:camera-extensions:1.0.0-alpha21androidx.camera:camera-view:1.0.0-alpha21 發布。1.0.0-alpha21 版包含這些修訂版本。

釋出版本支援其他相機程式庫構件。

Camera Extensions 和 View 1.0.0-alpha20 版本

2020 年 12 月 16 日

androidx.camera:camera-extensions:1.0.0-alpha20androidx.camera:camera-view:1.0.0-alpha20 發布。1.0.0-alpha20 版包含這些修訂版本。

釋出版本支援其他相機程式庫構件。

Camera-Extensions 和 Camera-View 1.0.0-alpha19 版本

2020 年 11 月 11 日

androidx.camera:camera-extensions:1.0.0-alpha19androidx.camera:camera-view:1.0.0-alpha19 發布。1.0.0-alpha19 版包含這些修訂版本。

修正錯誤

  • @ExperimentalVideo 註解已導入 camera-view。這個註解會標記公開實驗功能影片的 API,且在完整開發功能的過程中隨時可能變更。使用這些 API 的任何方法都應使用 @UseExperimental 註解,並以 ExperimentalVideo 做為 markerClass。(I6d729)

Camera-Extensions 1.0.0-alpha18 版本

2020 年 10 月 14 日

androidx.camera:camera-extensions:1.0.0-alpha18 發布。1.0.0-alpha18 版包含這些修訂版本。

修正錯誤

  • 已改善 CameraX 初始化與 bindToLifecycle 的延遲問題。(I61dc5)
  • 如果在連接到「相機」執行個體之前呼叫,除非在「建構工具」或 CaseCase 上設定 targetRotation,否則 <UseCase>.getTargetRotation() 會傳回 Surface.ROTATION_0。(I80fcd)

Camera-View 1.0.0-alpha18 版本

2020 年 10 月 14 日

androidx.camera:camera-view:1.0.0-alpha18 發布。1.0.0-alpha18 版包含這些修訂版本。

釋出版本支援其他相機程式庫構件。

Camera-Extensions 1.0.0-alpha17 版本

2020 年 9 月 23 日

androidx.camera:camera-extensions:1.0.0-alpha17 發布。1.0.0-alpha17 版包含這些修訂版本。

修正錯誤

Camera-View 1.0.0-alpha17 版本

2020 年 9 月 23 日

androidx.camera:camera-view:1.0.0-alpha17 發布。1.0.0-alpha17 版包含這些修訂版本。

修正錯誤

Camera-Extensions 1.0.0-alpha16 版本

2020 年 9 月 16 日

androidx.camera:camera-extensions:1.0.0-alpha16 發布。1.0.0-alpha16 版包含這些修訂版本。

修正錯誤

  • ExtensionsManager 中新增方法以取得 Extensions 物件,該物件可用於啟用及查詢 Camera 執行個體的擴充功能 (I4fb7e)

Camera-View 1.0.0-alpha16 版本

2020 年 9 月 16 日

androidx.camera:camera-view:1.0.0-alpha16 發布。1.0.0-alpha16 版包含這些修訂版本。

API 異動

  • 已移除 PreviewView#setDeviceRotationForRemoteDisplayMode()PreviewView#getDeviceRotationForRemoteDisplayMode()。想要的旋轉並非顯示的旋轉 (例如遠端顯示) 時,這兩種方法可用來自訂預覽畫面旋轉。如要立即處理非顯示的預覽畫面旋轉,請使用 Preview#setTargetRotation() 和新增的 PreviewView#getViewPort(targetRotation) 設定想要的旋轉。(Ib62cc)
  • createSurfaceProvider() 已重新命名為 getSurfaceProvider()。此方法一律會傳回相同的 Preview.SurfaceProvider 執行個體。(Iff83c)

修正錯誤

  • 如果啟用擴充效果,強制執行 PreviewView 使用 TextureView,且供應商程式庫實作作業必須在輸出途徑上採取特殊程序。(I0c3cc)
  • 允許「預覽」任意目標旋轉。系統會透過新的 TranformationInfoListener 回呼即時計算並傳回轉換資訊。(I21470)

已知問題

  • 在 PreviewView 中,當使用者點擊 PreviewView 時,不會叫用 OnClickListener#onClick()。PreviewView#onTouchEvent() 誤用觸控事件。這個問題將在下一個版本中修正。
  • 如果將 ViewPort 與 PreviewView 搭配使用,則從 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() 方法現在會納入 Context 做為參數,而非包含 0 引數。(Ife754)
  • 使用不會從 Context.getApplicationContext() 傳回「應用程式」物件的結構定義時,初始化作業應不會再異常終止。(I3d3c9b/160817073)

    Camera-View 1.0.0-alpha15 版本

    2020 年 8 月 19 日

androidx.camera:camera-view:1.0.0-alpha15 發布。1.0.0-alpha15 版包含這些修訂版本。

修正錯誤

  • DisplayOrientedMeteringPointFactory 納入 CameraInfo 執行個體,而非 CameraSelector,因此可直接對應工廠會為其產生點的相機。使用 DisplayOrientedMeteringPointFactory 的所有類別也會納入 CameraInfo 執行個體,而非 CameraSelector。(I400c1)
  • 已移除 TextureViewMeteringPointFactoryPreviewView 提供公用 API (createMeteringPointFactory()),用於建立計量點工廠,不論其使用 TextureViewSurfaceView。(Ide693)
  • 將 PreviewView 的 SURFACE_VIEW/TEXTURE_VIEW 實作模式重新命名為 PERFORMANCE/COMPATIBLEPERFORMANCE 是舊版 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 版包含這些修訂版本。

修正錯誤

  • 當 CameraView 繫結至 LifecycleOwner,且其 Lifecycle 在完成繫結後快速轉換為 DESTROYED 狀態時,不會再因為 IllegalArgumentException 而發生當機情形。繫結「DESTROYED」狀態的「生命週期」,不會嘗試開啟相機。(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,可傳回預覽介面顯示的內容 Bitmap 表示法。(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,可傳回預覽介面顯示的內容 Bitmap 表示法。(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 參數,PreviewView 現在會從 SurfaceRequest 內部擷取。(If18f0b/154652477)
  • 將 CameraView 中 VideoCapture 的預設長寬比修正為 16:9。(Ie6a7bb/153237864)
  • 修正在 ViewPager2 中先滑開 Preview 片段再滑回時的 PreviewView 黑色畫面問題。也已修正先 removeView(previewview)addView(previewView) 的問題。(Iab555b/149877652b/147354615)
  • 更新 CameraView#takePicture() API,允許將圖片儲存至 UriOutputStream。更新測試應用程式,以使用 Uri 做為標準範例。(Ia2459b/153607583)
  • 您可以設定 ScaleType 屬性,從 XML 版面配置設定 PreviewView 的調整類型。(I08565b/153015659)
  • 已移除 CameraView.ScaleType。請改用 PreviewView.ScaleType 來 set/get CameraView 的調整類型。(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-beta02camera-lifecycle:1.0.0-beta02 構件中的錯誤修正

Camera-View 1.0.0-alpha09 版本

2020 年 4 月 1 日發布 androidx.camera:camera-view:1.0.0-alpha091.0.0-alpha09 版本包含以下修訂項目。

已知問題

  • 使用 ImplementationMode.SURFACE_VIEW 搭配 PreviewView 在特定裝置上可能無法正常運作,原因是用於預覽的 SurfaceView 會在視窗所在的生命週期停止、重新啟動、相機重新開啟時驗證其途徑,且可能會嘗試在 SurfaceView 的途徑再次有效時繼續預覽。目前,您應該使用 ImplementationMode.TEXTURE_VIEW

API 異動

  • PreviewView.setImplementationMode() 已重新命名為 PreviewView.setPreferredImplementationMode()
  • PreviewView.getImplementationMode() 已重新命名為 PreviewView.getPreferredImplementationMode()
  • 已將 PreviewView.getSurfaceProvider() 取代為 PreviewView.createSurfaceProvider(CameraInfo),這個值可使用 ImplementationMode.SURFACE_VIEW (可能時) 接受空值 CameraInfo 執行個體用於最佳化預覽。如果傳遞的是空值執行個體,或您已將偏好的實作作業模式設為 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() 上的 ListenableFuture 替換成 ExecutorCallback。這表示 API 不再需要處理 provideSurface() 上的例外狀況,並強制執行 provideSurface() 回呼不得取消,藉此簡化 API。這是為了避免因過早釋出途徑,造成較舊裝置當機。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() 中傳遞的檔案引數已移除。(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)

修正錯誤

  • 已更新 ImageCapture,允許將圖片儲存至 UriOutputStream。將超載的 takePicture 方法合而為一。已更新測試應用程式,以 Uri 做為標準範例。(Ia3bec)
  • Preview.PreviewSurfaceProvider 已重新命名為 Preview.SurfaceProviderSurfaceProvider 不再需要開發人員自行建立 ListenableFuture,且現在透過新的 SurfaceRequest 物件即可提供 Surface。由於 Preview 與其他類別 (例如 PreviewView) 配對使用時可能濫用,因此已將 Preview.getPreviewSurfaceProvider() 方法移除。(I20105)
  • 先前在 ImageCapture.OnImageSavedCallback.onError()ImageCapture.OnImageCapturedCallback.onError() 中傳遞的引數現已取代為單一引數 ImageCaptureException,該引數仍包含先前傳遞的所有資訊。
  • 先前在 ImageCapture.OnImageSavedCallback.onImageSaved() 中傳遞的檔案引數已移除。(I750d2)
  • API 已更新,其中 CameraInfogetZoomRatio()getMaxZoomRatio()getMinZoomRatio()getLinearZoom() 的方法會合併為 getZoomState(),以傳回 ZoomState 執行個體。(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)。

新功能

  • 已導入名為 PreviewView.TextureViewImplementation 的新類別,可將 SurfaceTexture 的生命週期與相機的 TextureView 介面使用期間保持同步。

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 提供 PreviewSurfaceProvider,方便您輕鬆連結「預覽」用途

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • 在 API 命名時,ZoomLevel 現已更名為 ZoomRatio

  • 部分方法參數已變更是否可為空值的設定

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 包含的修訂項目

新功能

  • 已新增擴充功能的結構定義初始化工具。Extensions 版本已增加到 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 推出新程式庫,以便在支援的裝置上存取特效。這個程式庫正在運作。
  • 全新的 Camera View 類別。這個程式庫正在運作。