CameraCaptureSession 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個設定的 CameraDevice擷取會話,用於從相機擷取影像或重新處理先前在同一會話中從相機擷取的影像。
[Android.Runtime.Register("android/hardware/camera2/CameraCaptureSession", DoNotGenerateAcw=true)]
public abstract class CameraCaptureSession : Java.Lang.Object, IDisposable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("android/hardware/camera2/CameraCaptureSession", DoNotGenerateAcw=true)>]
type CameraCaptureSession = class
inherit Object
interface IAutoCloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 衍生
- 屬性
- 實作
備註
一個設定的 CameraDevice擷取會話,用於從相機擷取影像或重新處理先前在同一會話中從相機擷取的影像。
CameraCaptureSession 是透過提供一組目標輸出表面到 CameraDevice#createCaptureSession createCaptureSession,或提供 android.hardware.camera2.params.InputConfiguration 一組目標輸出表面 CameraDevice#createReprocessableCaptureSession createReprocessableCaptureSession 來建立,以實現可重處理的擷取會話。 一旦建立,該會話會處於活躍狀態,直到攝影機裝置建立新的會話,或攝影機裝置關閉為止。
所有擷取會話都可用於從相機擷取影像,但只有可重處理擷取會話能重新處理先前同一次會話中從相機擷取的影像。
建立會話是一項昂貴的操作,可能需要數百毫秒,因為這需要配置相機裝置的內部管線,並分配記憶體緩衝區來傳送影像給目標。 因此設定是非同步進行, CameraDevice#createCaptureSession createCaptureSession 並 CameraDevice#createReprocessableCaptureSession createReprocessableCaptureSession 會將可用的 CameraCaptureSession 傳送給所提供聆聽者的 CameraCaptureSession.StateCallback#onConfigured onConfigured 回調。 若無法完成設定,則會呼叫該 CameraCaptureSession.StateCallback#onConfigureFailed onConfigureFailed 會話,該會話將不再啟用。
<!--
在會話準備好前提交的任何擷取請求(重複或非重複)都會被排隊,並在會話準備好後開始擷取。 若無法設定會話並 StateCallback#onConfigureFailed onConfigureFailed 被呼叫,所有排隊中的擷取請求都會被丟棄。
-->
若攝影機裝置建立新會話,則關閉先前會話,並呼叫其相關的 StateCallback#onClosed onClosed 回調。 所有 session 方法在關閉 session 後若被呼叫,都會拋出 IllegalStateException。
封閉會話會清除所有重複的請求(就像 #stopRepeating 被呼叫一樣),但仍會正常完成所有進行中的擷取請求,然後新建立的會話接手並重新配置攝影機裝置。
Java 文件 android.hardware.camera2.CameraCaptureSession。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| CameraCaptureSession() | |
| CameraCaptureSession(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Device |
取得本會話所設計的攝影機裝置。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| InputSurface |
取得與可再生擷取會話相關的輸入 Surface。 |
| IsReprocessable |
如果應用程式能用此相機擷取會話提交重新處理擷取請求,請回傳。 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
一個設定的 |
| JniPeerMembers |
一個設定的 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
一個設定的 |
| IJavaPeerable.Finalized() |
一個設定的 |
| IJavaPeerable.JniObjectReferenceControlBlock |
一個設定的 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
一個設定的 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
一個設定的 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
一個設定的 |
| IJavaPeerable.UnregisterFromRuntime() |
一個設定的 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個設定的 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |