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
[<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>將 a Surface 傳給建構子,並使用 OutputConfiguration 實例作為參數。CameraDevice#createCaptureSessionByOutputConfigurations 這是最常見的使用方式,客戶應該先考慮,然後再考慮其他更複雜的替代方案。
</李>
<li>僅將表面原始類別作為參數傳遞給建構子。 接著通常會呼叫建立擷取會話(參見 CameraDevice#createCaptureSessionByOutputConfigurations 以及一個有效的 Surface加碼呼叫#addSurfaceSurface)。 序列完備為 CameraCaptureSession#finalizeOutputConfigurations。 這是延遲使用情境,旨在透過允許資源密集型的擷取會話創建呼叫與任何 Surface 初始化並行執行,例如等待 a android.view.SurfaceView 準備好作為 UI 初始化的一部分來提升效能。</李>
<li>第三種也是最複雜的使用模式涉及表面共享。 一旦實例化,OutputConfiguration 可以透過 啟用以進行表面共享 #enableSurfaceSharing。 此操作必須在建立新的擷取會話並啟用 之前 CameraCaptureSession#updateOutputConfiguration完成。 啟用表面共享的 OutputConfiguration 可以透過 或 #addSurface進行修改#removeSurface。 此 OutputConfiguration 的更新只會在返回後 CameraCaptureSession#updateOutputConfiguration 生效,且不會拋出例外。 只要會話持續進行,這些更新就可以進行。 客戶應始終考慮輸出表面所施加的額外要求與限制(詳情見 #enableSurfaceSharing、 #addSurface、 #removeSurfaceCameraCaptureSession#updateOutputConfiguration)。 在額外的複雜度與彈性之間存在取捨。 若操作得當,表面共享可在不同輸出表面間切換,且不會中斷持續重複的擷取請求。 這能節省時間,並大幅提升使用者體驗。</李>
<liSurface> 共享可與延遲曲面結合使用。 兩種情況的規則會合併,客戶端必須先通話 #enableSurfaceSharing 才能建立擷取會話。 透過 連接和/或移除輸出表面 #addSurface/#removeSurface ,並用 CameraCaptureSession#finalizeOutputConfigurations完成配置。
CameraCaptureSession#updateOutputConfiguration 可在配置 finalize 方法返回後無例外地呼叫。</李>
<如果>相機裝置支援多解析度輸出串流, CameraCharacteristics#SCALER_MULTI_RESOLUTION_STREAM_CONFIGURATION_MAP 將會包含格式及其對應的串流資訊。 應用程式可以使用由多解析度串流資訊MultiResolutionStreamConfigurationMap#getOutputInfoandroid.hardware.camera2.MultiResolutionImageReader建立的 OutputConfiguration 來擷取可變大小的影像。
</ul>
截至 android.os.Build.VERSION_CODES#P Android P,除了 ImageFormat#JPEG 和 ImageFormat#RAW_PRIVATE 外,所有格式皆可用於分享,前提是必須支援裝置。 在先前的 API 層級中,僅 ImageFormat#PRIVATE 允許使用格式。
Java 文件 android.hardware.camera2.params.OutputConfiguration。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| OutputConfiguration(ImageFormatType, Size, Int64) |
為特定格式、大小和使用標誌建立一個新 |
| OutputConfiguration(ImageFormatType, Size) |
為某個格式和大小建立一個新 |
| OutputConfiguration(Int32, ImageFormatType, Size, Int64) |
為給定的 surface group ID、格式、大小和使用標誌建立一個新 |
| OutputConfiguration(Int32, ImageFormatType, Size) |
為 一個 |
| OutputConfiguration(Int32, Surface) |
建立 |
| OutputConfiguration(Size, Class) |
建立一個新的 |
| OutputConfiguration(Surface) |
建立 |
欄位
| 名稱 | Description |
|---|---|
| MirrorModeAuto |
已淘汰.
基於攝影機面向的自動鏡像 |
| MirrorModeH |
已淘汰.
攝影機輸出是水平鏡像的 |
| MirrorModeNone |
已淘汰.
不會套用鏡像轉換 |
| MirrorModeV |
已淘汰.
攝影機輸出是垂直鏡像的 |
| SurfaceGroupIdNone |
無效的地表組識別碼。 |
| TimestampBaseChoreographerSynced |
已淘汰.
時間戳記會與編舞家同步。 |
| TimestampBaseDefault |
已淘汰.
預設的時間戳記基礎。 |
| TimestampBaseMonotonic |
已淘汰.
時間戳記基數大致與 。 |
| TimestampBaseRealtime |
已淘汰.
時間戳記基數大致與 。 |
| TimestampBaseSensor |
已淘汰.
時間戳記 基底為 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| ConfiguredFormat |
取得與此 |
| ConfiguredSize |
取得與此 |
| Creator |
一個描述攝影機輸出的類別,包含 及其 |
| DynamicRangeProfile |
回傳目前動態範圍設定檔。 -或- 設定特定裝置支援的動態範圍設定檔。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
一個描述攝影機輸出的類別,包含 及其 |
| JniPeerMembers |
一個描述攝影機輸出的類別,包含 及其 |
| MaxSharedSurfaceCount |
取得最大支援共享 |
| MirrorMode |
取得目前的鏡像模式 -或- 為此輸出目標設定鏡像模式 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| PhysicalCameraId |
取得與此 |
| ReadoutTimestampEnabled |
是否使用此 OutputConfiguration 的讀取時間戳。 -或者- 用相機感應器的讀取時間來顯示影像時間戳記。 |
| StreamUseCase |
取得目前的串流使用案例 -或- 為此設定串流使用案例 OutputConfiguration |
| Surface |
請與 |
| SurfaceGroupId |
取得與此 |
| Surfaces |
取得與此 |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| TimestampBase |
取得目前的時間戳基底 -或- 為此輸出目標設定時間戳基底 |
| Usage |
取得與此 |
方法
| 名稱 | Description |
|---|---|
| AddSensorPixelModeUsed(Int32) |
新增一個感測器像素模式,讓這個 OutputConfiguration 會被使用。 |
| AddSurface(Surface) |
在這個 OutputTConfiguration 中加入一個曲面。 |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
一個描述攝影機輸出的類別,包含 及其 |
| CreateInstancesForMultiResolutionOutput(ICollection<MultiResolutionStreamInfo>, ImageFormatType) |
建立一個實例清單 |
| CreateInstancesForMultiResolutionOutput(MultiResolutionImageReader) |
建立一個輸出 |
| DescribeContents() |
描述此 Parcelable 實例的分組表示中包含的特殊物件種類。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
一個描述攝影機輸出的類別,包含 及其 |
| EnableSurfaceSharing() |
啟用多個共享相同 OutputConfiguration 的表面 |
| Equals(Object) |
一個描述攝影機輸出的類別,包含 及其 |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| MakeDeferredAndRemoveSurfaces() |
清除所有有效的輸出表面,並將配置標記為延遲。 |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| RemoveSensorPixelModeUsed(Int32) |
移除先前透過 addSensorPixelModeUsed 新增的感測器像素模式,從此 OutputConfiguration 中移除。 |
| RemoveSurface(Surface) |
從此 OutputTConfiguration 中移除一個曲面。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetMirrorMode(Surface, MirrorMode) |
將屬於此 OutputConfiguration 的表面設定鏡像模式 |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
一個描述攝影機輸出的類別,包含 及其 |
| SetPhysicalCameraId(String) |
為此 OutputConfiguration 設定實體攝影機的 ID |
| SetSurfacesForMultiResolutionOutput(ICollection<OutputConfiguration>, MultiResolutionImageReader) |
將對應於 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
將中的這個物件扁平化為 Parcel。 |
明確介面實作
| 名稱 | 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) |
試著強制 |