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 である必要があることに注意してください。最新Imageのすべてを破棄するには、一度に 2 #acquireLatestImageImage Imagesを一時的に取得する必要があります。 より一般的には、マージンの画像が 2 つ未満の を呼び出すと #acquireLatestImage 、期待 (maxImages - currentAcquiredImages < 2) どおりに破棄されません。

または を使用して取得された#acquireLatestImage#acquireNextImage場合maxImages、この操作は をスローIllegalStateExceptionすることによって失敗します。 特に、中間で を呼び出さないよりも#getMaxImages大きい呼び出しImage#close#acquireLatestImageシーケンスでは、基になるキューが使い果たされます。 このような場合、 は、 IllegalStateException を使用 Image#closeしてより多くのイメージがリリースされるまでスローされます。

android.media.ImageReader.acquireLatestImage()Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象