OutputConfiguration 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
描述相機輸出的類別,其中包含 Surface
建立擷取會話的 及其特定組態。
[Android.Runtime.Register("android/hardware/camera2/params/OutputConfiguration", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class OutputConfiguration : Java.Lang.Object, Android.OS.IParcelable, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/hardware/camera2/params/OutputConfiguration", ApiSince=24, DoNotGenerateAcw=true)>]
type OutputConfiguration = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
描述相機輸出的類別,其中包含 Surface
建立擷取會話的 及其特定組態。
有數種方式可以具現化、修改和使用 OutputConfigurations。 下列清單中摘要說明最常見的和建議使用模式:
<ul>li 將 傳遞至建Surface
構函式,並使用 OutputConfiguration 實例作為 自變數至 CameraDevice#createCaptureSessionByOutputConfigurations
。>< 這是最常見的使用方式,客戶端應該先考慮它之前,其他更複雜的替代方案。 </李>
<li>僅傳遞介面來源類別做為建構函式的自變數。 這通常接著呼叫來建立擷取會話(請參閱 CameraDevice#createCaptureSessionByOutputConfigurations
和具有有效Surface
的新增呼叫#addSurface
Surface
。 序列會以 CameraCaptureSession#finalizeOutputConfigurations
完成。 這是延後使用案例,其旨在藉由允許大量資源擷取會話建立呼叫,以與任何 Surface
初始化平行執行,例如等候 android.view.SurfaceView
在UI初始化期間準備好。</李>
<li>第三個和最複雜的使用模式涉及表面共用。 具現化 OutputConfiguration 後,即可透過 #enableSurfaceSharing
啟用介面共用。 這必須先完成,才能建立新的擷取會話,並啟用對 CameraCaptureSession#updateOutputConfiguration
的呼叫。 具有已啟用表面共用的 OutputConfiguration 可以透過 #addSurface
或 #removeSurface
來修改。 此 OutputConfiguration 的更新只會在傳回之後 CameraCaptureSession#updateOutputConfiguration
生效,而不會擲回例外狀況。 只要會話為使用中,就可以進行這類更新。 客戶端應該一律考慮輸出介面上放置的其他需求和限制(如需詳細資訊,請參閱 #enableSurfaceSharing
、 、 。 #removeSurface
#addSurface
CameraCaptureSession#updateOutputConfiguration
額外的複雜度和彈性之間存在著取捨。 如果已正確練習表面共用,可以在不同的輸出介面之間切換,而不會中斷任何進行中的重複擷取要求。 這可節省時間,並可大幅改善用戶體驗。</李>
<li>Surface 共用可以與延遲表面搭配使用。 這兩種案例的規則都會合併,而且客戶端必須在建立擷取會話之前呼叫 #enableSurfaceSharing
。 透過附加和/或移除輸出介面#addSurface
/#removeSurface
,並使用 完成組態。CameraCaptureSession#finalizeOutputConfigurations
CameraCaptureSession#updateOutputConfiguration
可以在組態完成方法傳回後呼叫,而不會發生例外狀況。</李>
<li>如果相機裝置支援多解析度輸出數據流, CameraCharacteristics#SCALER_MULTI_RESOLUTION_STREAM_CONFIGURATION_MAP
將會包含格式及其對應的數據流資訊。 應用程式可以使用使用從 和 android.hardware.camera2.MultiResolutionImageReader
查詢MultiResolutionStreamConfigurationMap#getOutputInfo
的多解析度數據流資訊所建立的 OutputConfiguration 來擷取可變大小影像。
</ul>
從 開始android.os.Build.VERSION_CODES#P Android P
,除了 和 ImageFormat#RAW_PRIVATE
以外的ImageFormat#JPEG
所有格式都可用於共用,受限於裝置支援。 在先前的 API 層級上,只能 ImageFormat#PRIVATE
使用格式。
的 android.hardware.camera2.params.OutputConfiguration
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
OutputConfiguration(Int32, Surface) |
使用,建立具有 |
OutputConfiguration(Size, Class) |
建立具有所需 Surface 大小和 Surface 來源類別的新 |
OutputConfiguration(Surface) |
使用 |
欄位
MirrorModeAuto |
已淘汰.
根據面向相機的自動鏡像 |
MirrorModeH |
已淘汰.
相機輸出會水平鏡像 |
MirrorModeNone |
已淘汰.
未套用鏡像轉換 |
MirrorModeV |
已淘汰.
相機輸出會垂直鏡像 |
SurfaceGroupIdNone |
介面群組標識碼無效。 |
TimestampBaseChoreographerSynced |
已淘汰.
時間戳會同步處理至編舞者。 |
TimestampBaseDefault |
已淘汰.
默認時間戳基底。 |
TimestampBaseMonotonic |
已淘汰.
時間戳基底大致與 |
TimestampBaseRealtime |
已淘汰.
時間戳基底大致與 |
TimestampBaseSensor |
已淘汰.
的 |
屬性
Class |
傳回這個 |
Creator |
描述相機輸出的類別,其中包含 |
DynamicRangeProfile |
傳回目前的動態範圍配置檔。 -或- 設定特定裝置支援的動態範圍設定檔。 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
JniIdentityHashCode |
描述相機輸出的類別,其中包含 |
JniPeerMembers |
描述相機輸出的類別,其中包含 |
MaxSharedSurfaceCount |
取得支持的共享 |
MirrorMode |
取得目前的鏡像模式 -或- 設定此輸出目標的鏡像模式 |
PeerReference |
描述相機輸出的類別,其中包含 |
ReadoutTimestampEnabled |
是否使用此 OutputConfiguration 的讀取時間戳。 -或- 使用相機感測器的影像時間戳讀取時間。 |
StreamUseCase |
取得目前的數據流使用案例 -或- 設定此 OutputConfiguration 的數據流使用案例 |
Surface |
|
SurfaceGroupId |
取得與此 |
Surfaces |
取得與此 |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Object) |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Object) |
TimestampBase |
取得目前的時間戳基底 -或- 設定此輸出目標的時間戳基底 |
方法
AddSensorPixelModeUsed(Int32) |
新增將用於此 OutputConfiguration 的感測器圖元模式。 |
AddSurface(Surface) |
將介面新增至此 OutputConfiguration。 |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
CreateInstancesForMultiResolutionOutput(MultiResolutionImageReader) |
為所使用的 |
DescribeContents() |
描述相機輸出的類別,其中包含 |
Dispose() |
描述相機輸出的類別,其中包含 |
Dispose(Boolean) |
描述相機輸出的類別,其中包含 |
EnableSurfaceSharing() |
啟用共用相同 OutputConfiguration 的多個表面 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
JavaFinalize() |
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
RemoveSensorPixelModeUsed(Int32) |
從這個 OutputConfiguration 移除先前透過 addSensorPixelModeUsed 新增的感測器圖元模式。 |
RemoveSurface(Surface) |
從這個 OutputConfiguration 移除介面。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
SetPhysicalCameraId(String) |
設定此 OutputConfiguration 之實體相機的標識碼 |
ToArray<T>() |
描述相機輸出的類別,其中包含 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
描述相機輸出的類別,其中包含 |
Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
WriteToParcel(Parcel, ParcelableWriteFlags) |
描述相機輸出的類別,其中包含 |
明確介面實作
IJavaPeerable.Disposed() |
描述相機輸出的類別,其中包含 |
IJavaPeerable.DisposeUnlessReferenced() |
描述相機輸出的類別,其中包含 |
IJavaPeerable.Finalized() |
描述相機輸出的類別,其中包含 |
IJavaPeerable.JniManagedPeerState |
描述相機輸出的類別,其中包含 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
描述相機輸出的類別,其中包含 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
描述相機輸出的類別,其中包含 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
描述相機輸出的類別,其中包含 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
描述相機輸出的類別,其中包含 |
GetJniTypeName(IJavaPeerable) |
描述相機輸出的類別,其中包含 |