語言

CameraCharacteristics.GetRecommendedStreamConfigurationMap 方法

定義

取得特定使用情境下相機設備推薦的串流配置地圖 RecommendedStreamConfigurationMap 。

[Android.Runtime.Register("getRecommendedStreamConfigurationMap", "(I)Landroid/hardware/camera2/params/RecommendedStreamConfigurationMap;", "", ApiSince=29)]
public Android.Hardware.Camera2.Params.RecommendedStreamConfigurationMap? GetRecommendedStreamConfigurationMap(Android.Hardware.Camera2.Params.UsecaseMode usecase);
[<Android.Runtime.Register("getRecommendedStreamConfigurationMap", "(I)Landroid/hardware/camera2/params/RecommendedStreamConfigurationMap;", "", ApiSince=29)>]
member this.GetRecommendedStreamConfigurationMap : Android.Hardware.Camera2.Params.UsecaseMode -> Android.Hardware.Camera2.Params.RecommendedStreamConfigurationMap

參數

usecase
UsecaseMode

使用情境ID。

傳回

如果相機裝置沒有針對此使用情境的建議,或推薦的設定無效,則是有效 RecommendedStreamConfigurationMap 或空。

屬性

備註

取得特定使用情境下相機設備推薦的串流配置地圖 RecommendedStreamConfigurationMap 。

這裡宣傳的串流配置在效能和效能上都很有效率,適合常見的使用場景,如預覽、影片、快照等。推薦的映射通常只是相機裝置實作中提供 #SCALER_STREAM_CONFIGURATION_MAP 並建議的特定使用情境中詳盡清單中的一小部分。 關於各種情境下預期配置的進一步資訊,請參閱:<ul<>li>RecommendedStreamConfigurationMap#USECASE_PREVIEW</li><li<RecommendedStreamConfigurationMap#USECASE_RECORD>/li><liRecommendedStreamConfigurationMap#USECASE_VIDEO_SNAPSHOT></li liRecommendedStreamConfigurationMap#USECASE_SNAPSHOT></li><li/li><RecommendedStreamConfigurationMap#USECASE_RAW<><><>RecommendedStreamConfigurationMap#USECASE_ZSL li/li li/liRecommendedStreamConfigurationMap#USECASE_LOW_LATENCY_SNAPSHOT<<>>/ul><>

例如,關於相機客戶端如何利用此方法來查詢最大推薦的預覽與快照解析度,請參考以下偽程式碼:

<code>
            public static Size getMaxSize(Size... sizes) {
                if (sizes == null || sizes.length == 0) {
                    throw new IllegalArgumentException("sizes was empty");
                }

                Size sz = sizes[0];
                for (Size size : sizes) {
                    if (size.getWidth() * size.getHeight() &gt; sz.getWidth() * sz.getHeight()) {
                        sz = size;
                    }
                }

                return sz;
            }

            CameraCharacteristics characteristics =
                    cameraManager.getCameraCharacteristics(cameraId);
            RecommendedStreamConfigurationMap previewConfig =
                    characteristics.getRecommendedStreamConfigurationMap(
                             RecommendedStreamConfigurationMap.USECASE_PREVIEW);
            RecommendedStreamConfigurationMap snapshotConfig =
                    characteristics.getRecommendedStreamConfigurationMap(
                             RecommendedStreamConfigurationMap.USECASE_SNAPSHOT);

            if ((previewConfig != null) &amp;&amp; (snapshotConfig != null)) {

                 Set<Size> snapshotSizeSet = snapshotConfig.getOutputSizes(
                         ImageFormat.JPEG);
                 Size[] snapshotSizes = new Size[snapshotSizeSet.size()];
                 snapshotSizes = snapshotSizeSet.toArray(snapshotSizes);
                 Size suggestedMaxJpegSize = getMaxSize(snapshotSizes);

                 Set<Size> previewSizeSet = snapshotConfig.getOutputSizes(
                         ImageFormat.PRIVATE);
                 Size[] previewSizes = new Size[previewSizeSet.size()];
                 previewSizes = previewSizeSet.toArray(previewSizes);
                 Size suggestedMaxPreviewSize = getMaxSize(previewSizes);
            }

</code>

類似的邏輯也可以應用在其他使用情境上。

推薦的串流配置支援為可選。 若無針對特定使用情境的建議配置,請參閱 #SCALER_STREAM_CONFIGURATION_MAP 詳盡可用清單。

Java 文件 android.hardware.camera2.CameraCharacteristics.getRecommendedStreamConfigurationMap(int)。

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

適用於