言語

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 #acquireLatestImage#acquireNextImageと異なるために少なくとも 2 である必要があることに注意してください。最新のImageをすべて破棄するには、一度に 2 つのImage Imagesを一時的に取得する必要があります。 より一般的には、余白の画像が 2 つ未満の #acquireLatestImage を呼び出すと、 (maxImages - currentAcquiredImages < 2) は想定どおりに破棄されません。

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

Javaドキュメント。

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

適用対象