語言

ImageReader.AcquireLatestImage 方法

定義

從 ImageReader 的隊列中取得最新 Image 檔案,刪除較舊的 Image images。

[Android.Runtime.Register("acquireLatestImage", "()Landroid/media/Image;", "GetAcquireLatestImageHandler")]
public virtual Android.Media.Image? AcquireLatestImage();
[<Android.Runtime.Register("acquireLatestImage", "()Landroid/media/Image;", "GetAcquireLatestImageHandler")>]
abstract member AcquireLatestImage : unit -> Android.Media.Image
override this.AcquireLatestImage : unit -> Android.Media.Image

傳回

最新的影像資料框架,或 null 是若沒有影像資料可用。

屬性

例外狀況

如果目前拍攝的影像過多

備註

從 ImageReader 的隊列中取得最新 Image 檔案,刪除較舊的 Image images。 若無新圖片可用,請退貨 null 。

此操作會從 ImageReader 取得所有可能的影像,但 #close 所有非最新影像。 此功能建議 #acquireNextImage 在大多數使用情境中使用,因為它更適合即時處理。

注意,#getMaxImages maxImages要有#acquireNextImage不同,至少要有 2 個 ,#acquireLatestImage否則要丟棄除除最新Image外的全部,必須暫時同時取得兩個Image Images。 更一般來說, #acquireLatestImage 當邊距少於兩張圖片時,它 (maxImages - currentAcquiredImages < 2) 不會如預期丟棄。

若 maxImages 已獲得 或 #acquireNextImage#acquireLatestImage ,此運算將因拋出 IllegalStateException 而失敗。 特別地,若呼叫 #acquireLatestImage 序列大於 且 #getMaxImages 中間沒有呼叫 Image#close ,將耗盡底層佇列。 此時 將 IllegalStateException 被拋棄,直到更多帶有 的 Image#close影像被釋放。

Java 文件 android.media.ImageReader.acquireLatestImage()。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於