語言

ImageWriter.QueueInputImage(Image) 方法

定義

將輸入 Image 排隊回 ImageWriter,讓下游消費者存取。

[Android.Runtime.Register("queueInputImage", "(Landroid/media/Image;)V", "GetQueueInputImage_Landroid_media_Image_Handler", ApiSince=23)]
public virtual void QueueInputImage(Android.Media.Image? image);
[<Android.Runtime.Register("queueInputImage", "(Landroid/media/Image;)V", "GetQueueInputImage_Landroid_media_Image_Handler", ApiSince=23)>]
abstract member QueueInputImage : Android.Media.Image -> unit
override this.QueueInputImage : Android.Media.Image -> unit

參數

image
Image

圖片將排隊回 ImageWriter 以供未來使用。

屬性

備註

將輸入 Image 排隊回 ImageWriter,讓下游消費者存取。

輸入 Image 可來自 ImageReader(透過 ImageReader#acquireNextImage 或 ImageReader#acquireLatestImage取得),或是來自此 ImageWriter(透過 #dequeueInputImage取得)。 在前者情況下,影像資料會移至此 ImageWriter。 請注意,圖片屬性(大小、格式、步幅等)必須與從此 ImageWriter 出廠的圖片屬性相同。 在後者情況下,應用程式已將輸入影像填入資料。 此方法接著將填充的緩衝區傳遞給下游消費者。 在這兩種情況下,呼叫者必須確保影像時間戳(奈秒)正確設定,因為下游元件可能想用它來指示影像資料擷取時間。

當此方法被呼叫後,下游消費者使用並釋放映像檔, OnImageReleasedListener#onImageReleased 回調就會觸發。 應用程式可利用此回調,避免傳送影像時速度超過穩定狀態下下行消費者的處理速度。

從其他元件(例如 ) ImageReader傳送影像時,需要從此 ImageWriter 自由輸入影像作為目的地。 在這種情況下,這通電話會被封鎖,如果 #dequeueInputImage 沒有免費圖片可用,也會被封鎖。 為避免阻塞,應用程式應確保此 ImageWriter 至少有一張空閒影像,再呼叫此方法。

呼叫完成後,輸入的影像不再有效,無法繼續存取,就像影像是 Image#close closed。 嘗試存取先前Image.Plane#getBuffer Plane#getBuffer通話回傳的 ByteBuffer ByteBuffers 會產生 IllegalStateException。

Java 文件 android.media.ImageWriter.queueInputImage(android.media.Image)。

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

適用於