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>将 a Surface
传递给构造函数并使用 OutputConfiguration 实例作为参数传递给 CameraDevice#createCaptureSessionByOutputConfigurations
。 这是最常用的用法,客户端应该先考虑它,然后再考虑其他更复杂的替代方法。 </李>
<li>仅将图面源类作为参数传递给构造函数。 这通常后跟一个调用来创建捕获会话(请参阅CameraDevice#createCaptureSessionByOutputConfigurations
并Surface
添加具有有效Surface
调用#addSurface
。 序列使用 CameraCaptureSession#finalizeOutputConfigurations
. 这是延迟的用例,旨在通过允许资源密集型捕获会话创建与任何 Surface
初始化并行执行的调用来提高性能,例如等待 android.view.SurfaceView
在 UI 初始化过程中准备好。</李>
<li>第三个和最复杂的使用模式涉及图面共享。 实例化 OutputConfiguration 后,可以通过 .#enableSurfaceSharing
必须在创建新的捕获会话并启用调用 CameraCaptureSession#updateOutputConfiguration
之前执行此操作。 可以通过 #addSurface
或 #removeSurface
. 此 OutputConfiguration 的更新只有在返回后 CameraCaptureSession#updateOutputConfiguration
才会生效,而不会引发异常。 只要会话处于活动状态,就可以执行此类更新。 客户端应始终考虑输出图面上施加的其他要求和限制(有关详细信息,请参阅#enableSurfaceSharing
、CameraCaptureSession#updateOutputConfiguration
#addSurface
#removeSurface
)。 额外的复杂性和灵活性之间存在权衡。 如果正确行使图面共享可以在不同的输出图面之间切换,而不会中断任何正在进行的重复捕获请求。 这样可以节省时间并显著改善用户体验。</李>
<li>Surface 共享可与延迟图面结合使用。 这两种情况中的规则组合在一起,客户端必须在创建捕获会话之前调用 #enableSurfaceSharing
。 通过附加和/或删除输出图面#addSurface
/#removeSurface
,并使用 .CameraCaptureSession#finalizeOutputConfigurations
CameraCaptureSession#updateOutputConfiguration
可以在配置终结方法返回后调用,而不会发生异常。</李>
<li>如果相机设备支持多分辨率输出流, CameraCharacteristics#SCALER_MULTI_RESOLUTION_STREAM_CONFIGURATION_MAP
将包含格式及其相应的流信息。 应用程序可以使用通过查询 MultiResolutionStreamConfigurationMap#getOutputInfo
的多分辨率流信息创建的 OutputConfiguration 来 android.hardware.camera2.MultiResolutionImageReader
捕获可变大小图像。
</ul>
从此 android.os.Build.VERSION_CODES#P Android P
,除所有格式外 ImageFormat#JPEG
, ImageFormat#RAW_PRIVATE
还可以用于共享,但受设备支持的约束。 在以前的 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 |
图面组 ID 无效。 |
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 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 Object) |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 (继承自 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 设置物理相机的 ID |
ToArray<T>() |
用于描述相机输出的类,其中包含用于创建捕获会话的一个 |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
UnregisterFromRuntime() |
用于描述相机输出的类,其中包含用于创建捕获会话的一个 |
Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<>< (继承自 Object) |
Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</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) |
用于描述相机输出的类,其中包含用于创建捕获会话的一个 |