CameraDevice.CreateCaptureSession 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| CreateCaptureSession(SessionConfiguration) |
使用 |
| CreateCaptureSession(IList<Surface>, CameraCaptureSession+StateCallback, Handler) |
透過提供目標輸出的 Surfaces 集給攝影機裝置,建立新的相機擷取會話。 |
CreateCaptureSession(SessionConfiguration)
使用CameraCaptureSession輔助物件建立一個SessionConfiguration新物件,彙整所有支援參數。
[Android.Runtime.Register("createCaptureSession", "(Landroid/hardware/camera2/params/SessionConfiguration;)V", "GetCreateCaptureSession_Landroid_hardware_camera2_params_SessionConfiguration_Handler", ApiSince=28)]
public virtual void CreateCaptureSession(Android.Hardware.Camera2.Params.SessionConfiguration? config);
[<Android.Runtime.Register("createCaptureSession", "(Landroid/hardware/camera2/params/SessionConfiguration;)V", "GetCreateCaptureSession_Landroid_hardware_camera2_params_SessionConfiguration_Handler", ApiSince=28)>]
abstract member CreateCaptureSession : Android.Hardware.Camera2.Params.SessionConfiguration -> unit
override this.CreateCaptureSession : Android.Hardware.Camera2.Params.SessionConfiguration -> unit
參數
- config
- SessionConfiguration
會話配置(參見 SessionConfiguration)。
- 屬性
備註
使用CameraCaptureSession輔助物件建立一個SessionConfiguration新物件,彙整所有支援參數。
主動擷取會話決定相機裝置在每次擷取請求下可能產生的輸出表面集合。 一個請求可能會使用全部或部分輸出。 一旦 CameraCaptureSession 建立,請求可使用 、 CameraCaptureSession#capture capture、 CameraCaptureSession#captureBurst captureBurst或 CameraCaptureSession#setRepeatingRequest setRepeatingRequest提交。CameraCaptureSession#setRepeatingBurst setRepeatingBurst
適合作為相機輸出的表面可依不同使用情境與目標製作:
<UL>
<li>繪製為 android.view.SurfaceView SurfaceView:當 SurfaceView 的 Surface 為 android.view.SurfaceHolder.Callback#surfaceCreated created後,將 Surface android.view.SurfaceHolder#setFixedSize 的大小設為 所StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceHolder.class)回傳的大小之一,然後透過呼叫 android.view.SurfaceHolder#getSurface取得 Surface 。 若應用程式未設定尺寸,攝影機裝置會將其四捨五入至最小於 1080p 的支援尺寸。</李>
<li>若要透過 OpenGL 材質android.graphics.SurfaceTexture SurfaceTexture存取:請將 SurfaceTexture android.graphics.SurfaceTexture#setDefaultBufferSize 的大小設為 在 用 SurfaceTexture StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(SurfaceTexture.class)建立 Surface 之前,Surface#Surface(SurfaceTexture)將 的 返回的大小之一 。 若應用程式未設定大小,則攝影機裝置會將其設定為最小支援的 1080p 大小。</李>
<li>用於錄音android.media.MediaCodec:設定媒體編解碼器使用/li回傳android.media.MediaCodec#createInputSurfaceStreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaCodec.class)的大小後呼叫<>
<li>若要錄製:android.media.MediaRecorderandroid.media.MediaRecorder#getSurface設定媒體錄影機使用由 StreamConfigurationMap#getOutputSizes(Class) getOutputSizes(MediaRecorder.class)回傳的大小之一,或設定為支援android.media.CamcorderProfile CamcorderProfiles的 。</李>
<li>若要在應用程式中存取 RAW、未壓縮的 YUV 或壓縮 JPEG 資料: android.media.ImageReader 建立一個物件,使用由 StreamConfigurationMap#getOutputFormats()所提供的支援輸出格式之一,並將其大小設定為相應支援的大小之一,方法是將所選輸出格式傳入 StreamConfigurationMap#getOutputSizes(int)。 然後從中得到 a android.view.Surface ,且 android.media.ImageReader#getSurface()。 若 ImageReader 尺寸未設定為支援大小,相機裝置會將其四捨五入至小於 1080p 的支援尺寸。
</李>
</ul>
攝影機裝置會在此呼叫時查詢每個 Surface 的尺寸與格式,因此此時必須設定為有效設定。
由於攝影機硬體可能需要開機或重新設定,完成設定可能需要數百毫秒。 一旦設定完成且會話準備實際擷取資料,就會呼叫所提供的 CameraCaptureSession.StateCallback的 CameraCaptureSession.StateCallback#onConfigured 回調。
若呼叫此方法時已有先前的 CameraCaptureSession,該前一個 session 將無法再接受新的擷取請求並關閉。 上一次會話中進行中的擷取請求會在結束前完成。
CameraCaptureSession.StateCallback#onConfigured 因為新會話可能會被調用,先 CameraCaptureSession.StateCallback#onClosed 於前一個會話被調用。 一旦新會話為 CameraCaptureSession.StateCallback#onConfigured configured,它就能開始擷取自己的請求。 為了縮短轉換時間, CameraCaptureSession#abortCaptures 呼叫可用來丟棄先前擷取會話的剩餘請求,然後再建立新的擷取會話。 請注意,一旦建立新會話,舊會話就無法再中止捕獲。
使用較大解析度的輸出或更多輸出,可能會導致裝置的輸出速度變慢。
設定空清單或空清單的會話會關閉目前的會話(如果有的話)。 這可以用來釋放當前會話的目標表面,供其他用途使用。
此函式若使用 SessionConfiguration 呼叫,則拋 IllegalArgumentException 出一個 SessionConfiguration,且該配置缺乏狀態回調或有效輸出表面。 唯一的例外是延遲的 SurfaceView 或 SurfaceTexture 輸出。 如需詳細資訊,請參閱 OutputConfiguration#OutputConfiguration(Size, Class)。
<h3>普通吃子</h3>
雖然設定單一輸出串流時可以使用 的任何 StreamConfigurationMap#getOutputSizes 尺寸,但當多個輸出同時設定時,同一攝影機裝置可能無法支援所有尺寸、格式與目標的組合。 下表列出在相機裝置能力下,流與目標組合的最大保證解析度。 這些在未設定且未啟動重新處理時有效 android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration 。
若應用程式嘗試建立一組超過下表限制的目標會話,可能會發生三種可能的情況之一。 首先,會話可以成功建立並正常運作。 其次,工作階段可能成功建立,但攝影機裝置無法達到文中 StreamConfigurationMap#getOutputMinFrameDuration所述的幀率保證。 第三,如果輸出集完全無法使用,會話建立將完全失敗,無法 CameraCaptureSession.StateCallback#onConfigureFailed 被調用。
對於類型欄位,指PRIV任何可用尺寸使用且未直接應用可見格式的StreamConfigurationMap#getOutputSizes(Class)目標,YUV指使用該android.graphics.ImageFormat#YUV_420_888格式的目標 Surface,JPEGandroid.graphics.ImageFormat#JPEG指格式,以及RAW格式。android.graphics.ImageFormat#RAW_SENSOR
對於最大尺寸欄位,指 PREVIEW 的是與裝置螢幕解析度或 1080p1920x1080(以較小者為準)的最佳尺寸匹配。
RECORD 指的是相機裝置最大支援的錄影解析度,由 決定 android.media.CamcorderProfile。 以及 MAXIMUM 指相機裝置在該格式或目標下 StreamConfigurationMap#getOutputSizes的最大輸出解析度。
使用這些表格時,先確定所需輸出的數量及格式/目標,並找出表格中包含這些目標的列。 尺寸表示可使用的最大尺寸集合;可以保證,對於這些目標,列出的大小以及列表中較小 StreamConfigurationMap#getOutputSizes 的大小都能成功建立會話。 例如,若某列表示可與 2 百萬 PRIV YUV_420_888像素輸出同時使用,則可建立包含目標 [8 MP YUV, 2 MP PRIV] 或目標的 [2 MP YUV, 2 MP PRIV]會話;但包含目標 [8 MP YUV, 4 MP PRIV]、目標 [4 MP YUV, 4 MP PRIV]或目標 [8 MP PRIV, 2 MP YUV] 的會話並不保證能正常運作,除非表格的其他行列出此類組合。
<風格範圍> #rb { 邊框右寬:厚;< }/風格>
<h5>LEGACY 等級保證配置</h5>
舊有裝置(CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY)至少支援以下串流組合:
<表格><tr><th colspan=“2” id=“rb”>目標 1</th><th colspan=“2” id=“rb”>目標 2</th><th colspan=“2” id=“rb”>目標 3</th><行幅=“2”> 範例使用案例/<><th/tr><tr><th 類型></th><th id =“rb”>最大尺寸</th><>th 類型</th><th id =“rb” 最大尺寸/th th 類型/th th id =“rb” 最大尺寸>/th<>th<> th 類型/th<th id=“rb”><最大尺寸/th>/tr<><tr td><><>/tdPRIVdd d=“rb”<><>/tdMAXIMUM<td colspan=“2” id=“rb”>/td td<><dd colspan=“2” id=“rb”>/td td<><>簡單預覽、GPU 影片處理或無預覽影片錄製。<></td/tr><tr td><><>/tdJPEGtd d=“rb”/<><>tdMAXIMUM<td colspan=“2” id=“rb”>/td<><td colspan=“2” id=“rb”>/td td<><無>取景器靜態影像捕捉。<></td/tr><tr td><><>/tdYUVTD d=“rb”/<><>td tdMAXIMUM<colspan=“2” id=“rb”/>td<><td colspan=“2” id=“rb”>/td td<><d>- 應用程式內影片/影像處理。<></td/tr><tr td><><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/tdJPEGtd d=“rb”<><>/td tdMAXIMUM<colspan=“2” id=“rb”>/td<><td>標準仍持續影像。<></td/tr><tr td><><>/tdYUVtd d=“rb”/<><>tdPREVIEW<td><>/tdJPEGtd d=“rb”/<><>tdMAXIMUM<td colspan=“2” id=“rb”>/td td<><>應用程式內處理,且仍能擷取。<></td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdPREVIEW<td><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td colspan=“2” id=“rb”>/td<><td>標準錄音。<></td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdPREVIEW<td><>/tdYUVtd d=“rb”<><>/tdPREVIEW<td colspan=“2” id=“rb”>/td td<><>預覽及應用程式內處理。<></td/tr><tr td><><>/tdPRIVdd=“rb”<><>/tdPREVIEW<td><>/tdYUVtd d=“rb”/td td<><>/tdPREVIEWtd d=“rb”/<><td>JPEGtd dd=“rb”<><>/tdMAXIMUM<td>仍然有擷取並進行應用程式內處理。<></td></tr></table><br>
<h5>有限等級額外保證配置</h5>
有限層CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED()裝置除了支援裝置外 CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY LEGACY ,至少支援以下串流組合:
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>th colspan=“2” id=“rb”<目標 3></th><行幅=“2”> 範例使用案例/<><th/tr><tr>th<類型></th>th id =“rb”<最大尺寸></th><>< th 類型/th>th id =“rb”< 最大尺寸/th th 類型></th th id=“rb” 最大尺寸>/th<><th 類型/th>th id=“rb”< 最大尺寸></th>/tr<><><翻譯><TD>PRIV</TD><TD ID=“RB”>PREVIEW</TD><TD>PRIV</><TD TD ID=“RB”>RECORD</TD><TD Colspan=“2” ID=“RB”></TD><TD>高解析度影片錄影帶預覽。</td/tr><tr td><><>/tdPRIVTD ID=“RB”<><>/TDPREVIEW<TD><>/TDYUVTD id=“RB”<><>/TDRECORD<TD colspan=“2” id=“rb”>/td td<><>高解析度應用程式內影片處理及預覽。<></td/tr><tr td><><>/td tdYUVd=“rb”/<><>tdPREVIEW<td><>/tdYUVtd d=“rb”<><>/td tdRECORD<colspan=“2” id=“rb”>/td td<><>雙輸入應用程式內影片處理。<></td/tr><tr td><><>/tdPRIVTD ID=“RB”<><>/TDPREVIEW<TD><>/TDPRIVTD ID=“RB”<><>/TDRECORD<TD><>/TDJPEGTD ID=“RB”<><>/tdRECORD<TD>高解析度錄影帶影片快照。<></td/tr><tr td><><>/tdPRIVTD ID=“RB”<><>/TDPREVIEW<TD><>/TDYUVTD ID=“RB”<><>/TDRECORD<TD><>/TDJPEGTD ID=“RB”<><>/tdRECORD<TD>高解析度應用程式內處理並附帶影片快照。<></td/tr><TR td><><>/tdYUVTD TD ID=“RB”<><>/tdPREVIEW<TD><>/TDYUVTD TD ID=“RB”/<><>tdPREVIEW<TD><>/TDJPEGTD ID=“RB”<><>/tdMAXIMUM<TD>兩輸入的應用程式內處理,並持續擷取。<></td></tr></table><br>
<h5>全電平額外保證配置</h5>
FULL-Level (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) 裝置除了裝置的 CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED 串流組合外,至少支援以下串流組合:
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>th colspan=“2” id=“rb”<目標 3></th><行幅=“2”> 範例使用案例/<><th/tr><tr>th<類型></th>th id =“rb”<最大尺寸></th><>< th 類型/th>th id =“rb”< 最大尺寸/th th 類型></th th id=“rb” 最大尺寸>/th<><th 類型/th>th id=“rb”< 最大尺寸></th></tr><><TR><td>PRIV</td><td d=“rb”>PREVIEW</td><td>PRIV</td td><d=“rb”>MAXIMUM</td><td colspan=“2” id=“rb”></td td><>最高解析度 GPU 處理與預覽。</td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdPREVIEW<td><>/tdYUVtd d=“rb”<><>/tdMAXIMUM<td colspan=“2” id=“rb”>/td td<><>最高解析度應用程式內處理與預覽。<></td/tr><tr td><><>/td tdYUVd=“rb”/<><>tdPREVIEW<td><>/tdYUVtd d=“rb”/<><>td tdMAXIMUM<colspan=“2” id=“rb”>/td td<><>最大解析度雙輸入應用程式內處理。<></td/tr><tr td><><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/tdPRIVtd d=“rb”/td<><td>PREVIEW</td td>d=“rb”<>JPEG<><>/tdMAXIMUM<td>最大尺寸影片快照<錄影/td></tr><tr><td><>/tdYUVTD id=“rb”<><>/td640x480<td><>/tdPRIVTD ID=“RB”<><>/tdPREVIEW<TD><>/TDYUVTD TD ID=“RB”<><>/tdMAXIMUM<TD 標準>錄影加上最高解析度的應用程式內處理。<></td/tr><tr td><><>/tdYUVtd d=“rb”/<><>td640x480<td><>/tdYUVtd id=“rb”/td<><td>PREVIEW</td>td d=“rb”<>YUV<><>/tdMAXIMUM<td>預覽加上雙輸入最高解析度的應用程式內處理。<></td></tr></table><br>
<h5>RAW 能力 額外保證配置</h5>
具備 RAW 功能(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES包含CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW)裝置同時支援至少以下串流組合:CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULLCameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>th colspan=“2” id=“rb”<目標 3></th><行幅=“2”> 範例使用案例/<><th/tr><tr>th<類型></th>th id =“rb”<最大尺寸></th><>< th 類型/th>th id =“rb”< 最大尺寸/th th 類型></th th id=“rb” 最大尺寸>/th<><th 類型/th>th id=“rb”< 最大尺寸></th></tr><><TR><TD>RAW</TD><TD ID=“RB”>MAXIMUM</TD><TD colspan=“2” id=“RB”></TD><TD colspan=“2” id=“RB”></TD><TD>No-preview DNG capture.</td/tr><tr td><><>/tdPRIVTD TD ID=「RB」<><>/tdPREVIEW<TD><>/TDRAWTD ID=「RB」<><>/tdMAXIMUM<TD Colspan=“2” id=“rb”>/td td<><dd>標準 DNG 捕捉。<></td/tr><tr td><><>/tdYUVtd d=“rb”<><>/tdPREVIEW<td><>/tdRAWtd d=“rb”<><>/tdMAXIMUM<td colspan=“2” id=“rb”>/td td<><dd>應用程式內處理加上 DNG 擷取。<></td/tr><tr td><><>/TDPRIVTD TD ID=「RB」<><>/tdPREVIEW<TD><>/TDPRIVTD ID=「RB」<><>/tdPREVIEW<TD><>/TDRAWTD ID=「RB」<><>/tdMAXIMUM<td>錄影帶 DNG 擷取。<></td/tr><tr td><><>/td tdPRIVd=“rb”<><>/tdPREVIEW<td><>/td tdYUVd=“rb”/td<><td>PREVIEW</td td>d=“rb”<>RAW/<><>tdMAXIMUM<td>預覽,包含應用程式內處理與 DNG 擷取。<></td/tr><tr td><><>/tdYUVtd d=“rb”/<><>tdPREVIEW<td><>/td tdYUVd=“rb”/td<><td>PREVIEW</td td>d=“rb”<>RAW/td td id=“rb”<><>/tdMAXIMUM<td>雙輸入應用程式內處理加上 DNG 擷取。<></td/tr><tr><td><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/tdJPEGtd id=“rb”/td<><td>MAXIMUM</td>td d=“rb”<>RAW<><>/tdMAXIMUM<>td 同時拍攝 JPEG 與 DNG。<></td/tr><tr td><><>/tdYUVtd d=“rb”<><>/tdPREVIEW<td><>/tdJPEGtd d=“rb”/td td<><>/td tdMAXIMUMd=“rb”/<><td>RAWtd dd d=“rb”<><>/td tdMAXIMUM<>同時進行 JPEG 與 DNG 的應用程式內處理。<></td></tr></table><br>
<h5>BURST 能力 額外保證配置</h5>
BURST 能力(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES 包含 CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE BURST_CAPTURE)裝置至少支援以下串流組合,並支援裝置本身 CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED 的串流組合。 請注意,所有 FULL LEVEL 裝置都支援 BURST 功能,而以下列表是 FULL LEVEL 裝置清單的嚴格子集,因此此表僅適用於支援 BURST_CAPTURE 能力的 LIMITED 級裝置。
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>行幅=“2”< 範例使用案例/><><th/tr><tr><類型></th>th id id=“rb”<最大大小></th>th<>< 類型/th>th id =“rb”< 最大大小></th></tr><tr td><><>/tdPRIVdd id=“rb”<><>PREVIEW<><>/tdPRIV<><TD id=“RB”>MAXIMUM</td><td>最高解析度的 GPU 處理並附預覽版。</td/tr><tr td><><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/tdYUVtd id=“rb”<><>/td tdMAXIMUM<>最高解析度的應用程式內處理與預覽。<></td/tr><tr td><><>/tdYUVtd d=“rb”/<><>tdPREVIEW<td><>/tdYUVtd id=“rb”<><>/td tdMAXIMUM<>最大解析度雙輸入應用程式內處理。<></td></tr></table><br>
<h5>LEVEL-3 額外保證配置</h5>
LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) 至少支援以下串流組合,除了 RAW CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL 功能與 的組合外(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES包括):CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>colspan=“2” id=“rb”<目標 3></th>colspan=“2” id=“rb”< 目標 4></th>行幅=“2”< 範例使用案例/><><th/tr><tr th><類型></th>th id =“rb”< 最大尺寸></><th 類型></th>th id =“rb” 最大尺寸/th th 類型/th th id =“rb”< 最大尺寸></th>th<>< 類型/th>th id =“rb<><“>最大尺寸</th><th>類型</th><th id =”rb“> 最大大小</th></tr><tr><td>PRIV</td td><id=”rb“>PREVIEW</td><td>PRIV</td><td id=”rb“/td>640x480td<></td>dd id=”rb“YUV<><>MAXIMUM</td><td>RAW</td><td id=”rb“/td td id=”rb“>MAXIMUM</td><td>應用程式內觀景器分析輸出格式的動態選擇。</td/tr><tr td><><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/tdPRIVtd d=“rb”/td<><td>640x480</td td>d=“rb”<>JPEG/td td<><>/tdMAXIMUMtd d=“rb”<><>RAW</td><>MAXIMUM<td>/td td 在應用程式內分析,並動態選擇輸出格式。<></td></tr></table><br>
<h5>並行串流保證配置</h5>
BACKWARD_COMPATIBLE能夠與其他裝置 android.hardware.camera2.CameraManager#getConcurrentCameraIds 同時串流的裝置,在與其他裝置同時串流時,保證有以下串流服務
注意:這些並行串流所列的大小為保證支援的最大大小。 也支援比這些尺寸更小的尺寸,這些尺寸可針對特定格式取得 StreamConfigurationMap#getOutputSizes 。
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>行幅=“2”< 範例使用案例/><><th/tr><tr><類型></th>th id =“rb”<最大尺寸></th>th<類型></th>th id =“rb”< 最大尺寸></th></tr><tr td><><>/tdYUVdd id=“rb”<><>/tds1440p<td colspan=“2” id=“rb”><></結束><TD>應用程式內影片/影像處理。</td/tr><tr><td><>/tdPRIVtd d=“rb”<><>/tds1440p<td colspan=“2” id=“rb”>/td td<><>In-app Viewfinder analysis.<></td/tr><tr><td><>/tdJPEGd=“rb”/<><>td tds1440p<colspan=“2” id=“rb”>/td td<><td>無靜態取景器影像捕捉。<></td/tr><tr><td><>/tdYUV / PRIVtd d=“rb”<><>/tds720p<td><>/tdJPEGtd id=“rb”<><>/tds1440p<td> 標準影像。<></td/tr><tr td><><>/tdYUV / PRIVTD d=“rb”<><>/tds720p<td><>/tdYUV / PRIVtd id=“rb”<><>/td tds1440p<d>- 應用程式內影片 / 帶預覽的處理。<></td></tr></table><br>
非向下相容的裝置,則在同時運作時必須支援單一串流,大小為 sVGA 並支援影像格式 DEPTH16 。
對於保證的並行串流配置:
sVGA 指的是相機在該格式下的最大解析度,或是 StreamConfigurationMap#getOutputSizes VGA 解析度(640X480)較低者。
S720P 指的是相機裝置在該格式下的最大解析度,或以較低者為 StreamConfigurationMap#getOutputSizes 準的 720p(1280X720)。
S1440P 指的是相機裝置在該格式下的最大解析度,或是 StreamConfigurationMap#getOutputSizes 1440p(1920X1440)較低者。
單色功能(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES包含)裝置支援CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME MONOCHROME,依android.graphics.ImageFormat#Y8 Y8照裝置硬體層級與能力,在所有保證的串流組合中替換串流YUVY8。
用戶端可透過 android.hardware.camera2.params.MandatoryStreamCombination存取上述強制串流組合表。
能夠輸出 HEIC 格式(StreamConfigurationMap#getOutputFormats包含 android.graphics.ImageFormat#HEIC)的裝置,將支援以所有保證的串流組合替換JPEGHEIC串流,以符合裝置硬體等級與能力。 不支援同時呼叫 JPEG 與 HEIC 輸出的 createCaptureSession。
<h5>LEGACY 級額外保證組合,支援多解析度輸出</h5>
能夠針對特定格式多解析度輸出( android.hardware.camera2.params.MultiResolutionStreamConfigurationMap#getOutputInfo 回傳非空清單)的裝置,會支援該 MultiResolutionImageReader 格式的最高解析度串流,適用於所有強制的串流組合。 例如,若 LIMITED 攝影機支援多解析度輸出串流,JPEGPRIVATE除了上述 LIMITED 與 Legacy 表格中的串流配置外,該攝影機裝置支援以下保證串流組合(MULTI_RES最大尺寸欄位MultiResolutionImageReader指的是根據支援的可變最大解析度所建立的串流):
<表格><tr><th colspan=“2” id=“rb”>目標 1</th><th colspan=“2” id=“rb”>目標 2</th><th colspan=“2” id=“rb”>目標 3</th><行幅=“2”> 範例使用案例/<><th/tr><tr><th 類型></th><th id =“rb”>最大尺寸</th><>th 類型</th><th id =“rb” 最大尺寸/th th 類型/th th id =“rb” 最大尺寸>/th<>th<> th 類型/th<th id=“rb”><最大尺寸/th>/tr<><tr td><><>/tdPRIVdd d=“rb”<><>/tdMULTI_RES<td colspan=“2” id=“rb”>/td td<><dd colspan=“2” id=“rb”>/td td<><>簡單預覽、GPU 影片處理或無預覽影片錄製。<></td/tr><tr td><><>/tdJPEGtd d=“rb”/<><>tdMULTI_RES<td colspan=“2” id=“rb”>/td<><td colspan=“2” id=“rb”>/td td<><無>取景器靜態影像捕捉。<></td/tr><tr td><><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/tdJPEGtd d=“rb”<><>/td tdMULTI_RES<colspan=“2” id=“rb”>/td<><td>標準仍持續影像。<></td/tr><tr td><><>/tdPRIVdd=“rb”<><>/tdPREVIEW<td><>/tdYUVtd d=“rb”/td td<><>/tdPREVIEWtd d=“rb”/<><td>JPEGtd dd=“rb”<><>/tdMULTI_RES<td>仍然有擷取並進行應用程式內處理。<></td></tr></table><br>
<h5>有限等級額外保證配置,具備多解析度輸出</h5>
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>th colspan=“2” id=“rb”<目標 3></th><行幅=“2”> 範例使用案例/<><th/tr><tr>th<類型></th>th id =“rb”<最大尺寸></th><>< th 類型/th>th id =“rb”< 最大尺寸/th th 類型></th th id=“rb” 最大尺寸>/th<><th 類型/th>th id=“rb”< 最大尺寸></th>/tr<><><翻譯><TD>YUV</TD><TD ID=“RB”>PREVIEW</td><TD>YUV</TD><TD TD ID=“RB”>PREVIEW</td><TD>JPEG</TD><TD ID=“RB”>MULTI_RES</td><TD>兩輸入的應用程式內處理,且仍可擷取。</td></tr></table><br> 同樣的邏輯也適用於其他硬體層級與能力。
<h5>額外保證的ULTRA_HIGH_RESOLUTION感測器<組合/h5>
具備ULTRA_HIGH_RESOLUTION_SENSOR功能的裝置還有一些額外的保障,客戶端可以享受:
<table><tr><th colspan=“3” id=“rb”>目標 1</th><th colspan=“3” id=“rb”>目標 2</th><th colspan=“3” id=“rb”>目標 3</th><行幅=“2”> 範例使用案例/<><th/tr><tr><th>< 類型/th><th th id=“rb”> SC Map</th><th th id=“rb”>最大尺寸</th><>< 類型/th><th id =“rb” SC 地圖/th th th id =“rb”> SC 地圖</th><th th id=“rb”最大大小/th><>th 類型</th>th id =“rb”< SC Map></th>th th id=“rb”< 最大大小></th>/tr<><tr><td><>/td tdYUV / JPEG / RAWd=“rb”<><>/tdMAX_REStd id=“rb”/td<td id=“rb”><>MAX/td<td id=“rb”><>PRIV / YUV/td td id=“rb”<><>/tdDEFAULTtd id=“rb”<><>/tdPREVIEWtd colspan=“3” id=“rb”</td td><><>超高解析度靜態影像捕捉<>with preview</td></tr><tr td><>YUV / JPEG / RAW</td><TD ID=“RB”>MAX_RES</TD><TD ID=“RB”>MAX</TDD><TD ID=“RB”>PRIV</TD><TD ID=“RB”>DEFAULT</TD><TD ID=“RB”>PREVIEW</TD><TD ID=“RB”>PRIV / YUV</TD><TD ID=“RB”>DEFAULT</TD TD ID=“RB”/TD><TD ID=“RB”>RECORD</TD TD><>超高解析度仍可透過預覽+應用程式擷取 RECORD size analysis</td></tr><tr><td>YUV / JPEG / RAW</td><d_id=“rb”>MAX_RES</td><td id=“rb”/td td id=“rb”>MAX</td><td id=“rb”>PRIV</td><td id=“rb”/td td id=“rb”>DEFAULT</td><>td id=“rb”PREVIEW<></td td id=“rb”>JPEG / YUV / RAW</td><td id=“rb”>DEFAULT</td><TD id=“rb”>/tdMAX<td>超高解析度靜態影像拍攝(含預覽+預設感光元件像素模式分析串流</td></tr></table>br)<><>
此處 SC Map 指 StreamConfigurationMap的是 ,目標溪流大小必須從中選擇。
DEFAULT 指的是感測器預設的像素模式 StreamConfigurationMap ,並 MAX_RES 指最大解析度 StreamConfigurationMap。 對於MAX_RES溪流,MAX欄位Max size中指的是從 和 StreamConfigurationMap#getOutputSizes中StreamConfigurationMap#getHighResolutionOutputSizes最大大小。 注意:同一擷取請求不得混合來自 s 中對應不同感測器像素模式的目標 StreamConfigurationMap。
<H5>10位元輸出額外保證配置</H5>
支援 CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT 10 位元輸出的裝置至少支援以下串流組合:
<表格>tr th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>th colspan=“2” id=“rb”<目標 3></th><行幅=“2”> 範例使用案例/<><th/tr><tr>th<類型></th>th id =“rb”<最大尺寸></th><>< th 類型/th>th id =“rb”< 最大尺寸/th th 類型></th th id=“rb” 最大尺寸>/th<><th 類型/th>th id=“rb”< 最大尺寸></th>/tr<><><翻譯><td>PRIV</td><td d=“rb”>MAXIMUM</td></td><dd colspan=“4” id=“rb”></td td><>簡單預覽、GPU 影片處理或無預覽影片錄製。</td/tr><tr td><><>/tdYUVTD d=“RB”<><>/tdMAXIMUM</td><td colspan=“4” id=“rb”>/td td<><>應用程式內影片/影像處理。<></td/tr><tr td><><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/tdJPEGtd d=“rb”<><>/td tdMAXIMUM<colspan=“2” id=“rb”>/td<><td>標準仍持續影像。<></td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdPREVIEW<td><>/tdYUVtd d=“rb”<><>/tdMAXIMUM<td colspan=“2” id=“rb”>/td td<><>最高解析度應用程式內處理與預覽。<></td/tr><tr td><><>/td tdYUVd=“rb”/<><>tdPREVIEW<td><>/tdYUVtd d=“rb”/<><>td tdMAXIMUM<colspan=“2” id=“rb”>/td td<><>最大解析度雙輸入應用程式內處理。<></td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdPREVIEW<td><>/tdPRIVtd d=“rb”<><>/td tdRECORD<colspan=“2” id=“rb”>/td td<><>高解析度影片錄製含預覽。<></td/tr><tr td><><>/tdPRIVTD ID=“RB”<><>/TDPREVIEW<TD><>/TDPRIVTD ID=“RB”<><>/TDRECORD<TD><>/TDYUVTD ID=“RB”<><>/TDRECORD<TD>高解析度錄影並附應用程式快照。<></td/tr><tr td><><>/tdPRIVTD ID=“RB”<><>/TDPREVIEW<TD><>/TDPRIVTD ID=“RB”<><>/TDRECORD<TD><>/TDJPEGTD ID=“RB”<><>/tdRECORD<TD>高解析度錄影帶影片快照。<></td></tr></table><br>
此處 PRIV 可為 8 位元或 10 位 android.graphics.ImageFormat#PRIVATE 元像素格式。 YUV 可以是 android.graphics.ImageFormat#YUV_420_888 或 android.graphics.ImageFormat#YCBCR_P010。 對於最大尺寸欄位,PREVIEW 指的是與裝置螢幕解析度或 1080p(1920x1080)相符的最佳尺寸,以較小者為準。 RECORD 指的是相機裝置最大支援的錄影解析度,由 決定 android.media.CamcorderProfile。 MAXIMUM 指的是相機裝置在該格式或目標中 StreamConfigurationMap#getOutputSizes(int)的最大輸出解析度。 請注意,若將相機表面設定為像素格式 android.graphics.ImageFormat#YUV_420_888 且設定為 10-bit 配置檔,則會導致擷取會話初始化失敗。
android.graphics.ImageFormat#JPEG_R 若有 android.hardware.camera2.params.StreamConfigurationMap廣告,也可能支援。 在初始化包含 Jpeg/R 相機輸出的擷取會話時,客戶必須考慮以下事項,特別是在 10 位元強制串流組合表中:
<ul><li>為了產生壓縮後的 Jpeg/R 影像,相機裝置內部會使用單一android.graphics.ImageFormat#YCBCR_P010輸出。</li><li>On 的攝影機裝置,若能同時支援 10 位元與 8 位元擷取請求android.hardware.camera2.params.DynamicRangeProfiles#getProfileCaptureRequestConstraintsandroid.graphics.ImageFormat#JPEG,內部也會額外配置以加快編碼流程。</li></ul>
JPEG/R 相機輸出通常能支援裝置最大解析度。 客戶也可以來電 StreamConfigurationMap#getOutputSizes(int) 索取完整的支援尺寸清單。 若相機客戶端在串流組合中註冊 Jpeg/R 輸出,且不符合上述強制串流表,可呼叫 #isSessionConfigurationSupported 確認此配置是否支援。
<H5>STREAM_USE_CASE 能力 額外保證配置</H5>
具備STREAM_USE_CASE功能(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES 包括 CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE)的裝置支援以下額外串流組合:
<table>tr th colspan=“3” id=“rb”<目標 1></th>th colspan=“3” id=“rb”<目標 2></th>th colspan=“3” id=“rb”<目標 3></th><行幅=“2”> 範例使用案例/<><th/th><><tr th 類型></th>th id =“rb”<最大大小></th><th 使用案例></th><>< 類型/th>th id=“rb”<最大大小></th>th<使用案例></th 類型><><>/th th id=“rb”<最大大小></th>th<使用案例></th></tr><tr><td><>/tdYUV / PRIVtd d=“rb”<><>/tdPREVIEWtd id=“rb”<><>/tdPREVIEW<td colspan=“3” id=“rb”>/td<><dd colspan=“3” id=“rb”>/td td<><>dd 簡單預覽或應用程式內影像處理</td></tr><tr><td><>/tdYUV / PRIVddid=“rb”<><>RECORD</td><td id=“rb”>VIDEO_RECORD</td><td colspan=“3” id=“rb”></td><dd colspan=“3” id=“rb”></td td><>簡單視頻錄製或應用程式內視頻處理</td></tr><tr><td>YUV / JPEG</td><dd=“rb”>MAXIMUM</td><td id=“rb”/td dd=“rb”>STILL_CAPTURE</td td><colspan=“3” id=“rb”></td td colspan=“3” id=“rb”/td><dcolspan=“3” id=“rb”></td><TD>簡單 JPEG 或 YUV 靜態影像擷取</td></tr><tr><td>YUV / PRIV</td><td d=“rb”>s1440p</td td><id=“rb”>PREVIEW_VIDEO_STILL</td td><colspan=“3” id=“rb”/td><>dd colspan=“3” id=“rb”</td dd colspan=“3” id=“rb”></td td><>多功能串流用於預覽、影片及靜態影像捕捉</td></tr><tr td><>YUV / PRIV</td><TD id=“RB”>s1440p</td><td id=“rb”>VIDEO_CALL</td td><colspan=“3” id=“rb”></td><dd colspan=“3” id=“rb”></td td><>簡單視訊通話</td></tr><tr><td>PRIV</td><td d=“rb”/td td id=“rb”>PREVIEW</td><td id=“rb”>PREVIEW</td><>YUV / JPEG<>< td d=“rb”/td>td id=“rb”/MAXIMUM<><>STILL_CAPTURE<td td colspan=“3” id=“rb”>/td td<><>預覽 JPEG 或 YUV 靜態影像擷取</td></tr><tr><td><>/tdPRIVd=“rb”<><>/tdPREVIEWtd id=“rb”/td td=“rb”<><>/tdPREVIEW<td><>/tdYUV / PRIVd=“rb”/td td id=“rb”<><>RECORD<></td>VIDEO_RECORD<td colspan=“3” id=“rb”>/td td<><td><>帶影片錄製或應用程式內影片處理<的預覽/td></tr><tr td><>PRIV</td><td id=“rb”/>PREVIEW<td><td id=“rb”/>PREVIEW<td><td>YUV</td td><d=“rb”/td td d=“rb”>PREVIEW</td td d=“rb”><>PREVIEW/td<><td colspan=“3” id=“rb”></td><td>使用應用程式內影像處理<預覽/td/tr><tr><td><>/TDPRIVTD TD ID=“RB”<><>/tdPREVIEWTD id=“RB”<><>/tdPREVIEW<TD><>/TDYUV / PRIVTD ID=“RB”<><>/TD TD ID=“RB”s1440p<></TD>VIDEO_CALL<TD Colspan=“3” id=“rb”>/td<><TD>帶視訊通話<預覽/td></tr><TR><TD><>/TDYUV / PRIV<><td id=“rb”>s1440p</td td><id=“rb”>PREVIEW_VIDEO_STILL</td><td>YUV / JPEG</td td><d=“rb”/td td>d=“rb”MAXIMUM<><>STILL_CAPTURE</td><td colspan=“3” id=“rb”></td td><>多目的串流 JPEG 或 YUV 仍然捕捉</td></tr><tr><td>YUV</td><dd=“rb”/td>td id=“rb”PREVIEW<><>/tdSTILL_CAPTURE<td><>/tdJPEGtd d=“rb”<><>/tdMAXIMUMtd id=“rb”<><>/td tdSTILL_CAPTURE<colspan=“3” id=“rb”>/td td<><>YUV 與 JPEG 同時拍攝靜態影像(用於測試)</td></tr><tr><td><>/tdPRIVd=“rb”/td did=“rb”<><>/tdPREVIEWtd id=“rb”<><>/tdPREVIEW<td><>YUV / PRIV</td><td id=“rb”>RECORD</td><td id=“rb”/>VIDEO_RECORD<td><td>JPEG</td><td d=“rb”/td>td d=“rb”RECORD<><>STILL_CAPTURE</td td><>預覽、錄影及 JPEG 影片快照</td></tr><tr><td>PRIV</td><dd=“rb”/td td id=“rb”>PREVIEW</td><td id=“rb”>PREVIEW</td><TD>YUV</TD><TD D=“RB”/>PREVIEW<TD TD><DD=“RB”/>PREVIEW<TD><TD>JPEG</TD TD><D=“rb”/td td>d=“rb”MAXIMUM<><>STILL_CAPTURE</td td><>預覽、應用程式內影像處理與 JPEG 靜態影像擷取</td></tr></table br><>
<H5>STREAM_USE_CASE_CROPPED_RAW 能力 額外保證配置</H5>
包含 CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 串流使用情境的 CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES裝置支援以下額外的串流組合:
<table>tr th colspan=“3” id=“rb”<目標 1></th>th colspan=“3” id=“rb”<目標 2></th>th colspan=“3” id=“rb”<目標 3></th><行幅=“2”> 範例使用案例/<><th/th><><tr th 類型></th>th id =“rb”<最大大小></th><th 使用案例></th><>< 類型/th>th id=“rb”<最大大小></th>th<使用案例></th 類型><><>/th th id=“rb”<最大大小></th>th<使用案例></th></tr><tr><td><>/tdRAWtd d=“rb”<><>/tdMAXIMUMtd d=“rb”<><>/tdCROPPED_RAW<dd colspan=“3” id=“rb”>/td<><dd colspan=“3” id=“rb”>/td td<><>dd 裁切 RAW 仍未預覽</td></tr><tr><td><>/tdPRIV / YUVdd d=“rb”<><>PREVIEW</td><td id=“RB”/td>PREVIEWtd<></>RAW<td td><d=“rb”>MAXIMUM</td td><id=“rb”>CROPPED_RAW</td td><colspan=“3” id=“rb”></td td><>截止 RAW 裁切後預覽 仍捕捉</td></tr><tr><td>PRIV / YUV</td><td d=“rb”>PREVIEW</td><dd id=“RB”>PREVIEW</td TD><>YUV / JPEG</td><td id=“rb”>MAXIMUM</td><td id=“rb”/>STILL_CAPTURE<td><td>RAW</td td><d=“rb”>MAXIMUM</td><td id=“rb”>CROPPED_RAW</td td><>預覽 YUV / JPEG 和裁切 RAW 仍能捕捉</td></tr><tr><td>PRIV / YUV</td><td id=“rb”/td td id=“rb”>PREVIEW</td><d=“rb”>PREVIEW</td><TD>PRIV / YUV</td><td id=“rb”/>PREVIEW<td><td d=“rb”/>VIDEO_RECORD / PREVIEW<td><td>RAW</td td><d=“rb”/td td d=“rb”>MAXIMUM</td><td d=“rb”>CROPPED_RAW</td td><>錄影帶預覽與裁切 RAW 靜態捕捉</td></tr></table br><>
<h5>預覽穩定保證串流配置/<h5>
對於包含 CameraCharacteristics#CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES 的裝置,以下串流組合是保證的,對於 CaptureRequests ,其中 CameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION 設為CaptureRequest#CONTROL_VIDEO_STABILIZATION_MODECameraMetadata#CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION表<>tr<th colspan=“2” id=“rb”><目標 1>/th<th colspan=“2” id=“rb”><目標 2>/th<th rowspan=“2”>< 範例使用案例/><>th/tr<>tr<th><類型>/th<th id =“rb”><最大大小>/th<><> 類型/th<th id =“rb”>< 最大大小>/th</tr ><><TR><td>PRIV / YUV</td><td d=“rb”>s1440p</td td><colspan=“2” id=“rb”></td td><>穩定預覽、GPU 影片處理或無預覽穩定影片錄製。</td/tr><tr td><><>/tdPRIV / YUVTD ID=“RB”/<><>TDs1440p<TD><>/TDJPEG / YUVTD id=“RB”<><>/TDMAXIMUMTD<標準影像,並有穩定預覽。><></td/tr><tr td><><>/tdPRIV / YUVTD TD ID=「RB」<><>/tdPREVIEW<TD><>/TDPRIV / YUVTD ID=「RB」<><>/TDs1440pTD<高解析度錄影,具備穩定預覽與錄影串流。><></td></tr></table><br>
對於最大尺寸欄位,PREVIEW 指的是與裝置螢幕解析度或 1080p(1920x1080)相符的最佳尺寸,以較小者為準。 RECORD 指的是相機裝置最大支援的錄影解析度,由 決定 android.media.CamcorderProfile。 MAXIMUM 指的是相機裝置在該格式或目標中 StreamConfigurationMap#getOutputSizes(int)的最大輸出解析度。
由於攝影機裝置的能力差異很大,某個攝影機裝置可能支援尺寸超出這些保證的目標組合,但這只能透過呼叫 #isSessionConfigurationSupported 或嘗試建立與這些目標的會話來測試。
176x144(QCIF)解析度的例外:相機裝置通常有固定的從高解析度降細到小解析度的能力,而在高解析度影像感測器的裝置上,QCIF 解析度有時無法完全支援。 因此,嘗試將 QCIF 解析度串流與其他超過 1920x1080 解析度(寬度或高度)的串流一起配置,可能不支援,若未支援,擷取會話建立將失敗。
<h3>再處理</h3>
若攝影機裝置支援 YUV 重處理(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING)或 PRIVATE 重處理(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING),應用程式亦可建立可重處理擷取會話,透過設定 該會話的 來 android.hardware.camera2.params.SessionConfiguration#setInputConfiguration input configuration 提交重處理擷取請求,以除一般擷取請求外。 重新處理擷取請求會從會話的輸入 Surface 中取得下一個可用緩衝區,並再次送入攝影機裝置的處理管線,以產生請求目標輸出 Surfaces 的緩衝區。 重新處理請求時不會擷取新的影像資料。 然而,應用程式提供的輸入緩衝區必須先由同一攝影機裝置在同一工作階段直接擷取(例如零Shutter-Lag 使用情境)或間接擷取(例如合併多個輸出影像)。
主動可再處理擷取會決定每個擷取請求的輸入 Surface 及攝影機裝置潛在的輸出 Surfaces。 應用程式可使用 來 #createCaptureRequest createCaptureRequest 建立定期擷取請求,從相機裝置擷取新影像,並 #createReprocessCaptureRequest createReprocessCaptureRequest 用來重新處理擷取請求以處理來自輸入 Surface的緩衝區。 某些會話中的輸出表面組合可能無法同時用於請求。 可同時用於請求的保證輸出 Surfaces 組合列於下方 #createCaptureSession createCaptureSession的表格中。 同一擷取請求中的所有輸出 Surface,都會來自同一個來源,可能是攝影機裝置的新擷取,或是根據請求是否為重新處理擷取請求,來自輸入 Surface。
相機裝置支援的輸入格式與大小可透過 StreamConfigurationMap#getInputFormats 查詢。StreamConfigurationMap#getInputSizes 對於每種支援的輸入格式,相機裝置支援一組可透過 StreamConfigurationMap#getValidOutputFormatsForInput 和 StreamConfigurationMap#getOutputSizes查詢的輸出格式與重處理大小。 雖然輸出 Surfaces 格式不適合作為輸入配置的重新處理輸出目標,可以成為會話的一部分,但它們不能作為重處理請求的目標。
由於應用程式無法直接存取android.graphics.ImageFormat#PRIVATE影像,由android.media.ImageReader#newInstance格式android.graphics.ImageFormat#PRIVATE所建立的輸出 Surface 將被視為用於重處理輸入,因此android.media.ImageReader大小必須符合格式中支援的輸入大小android.graphics.ImageFormat#PRIVATE之一。 否則,建立可重處理擷取會話將失敗。
從 API 層級 30 開始,重建可重處理的擷取會話,將所有已排隊但尚未處理的緩衝區從輸入表面清除。
下表中的配置保證,若相機裝置支援 YUV 重處理或 PRIVATE 重處理,則可建立可重處理擷取會話。 然而,並非所有用於建立可重處理工作階段的輸出目標都能同時使用 CaptureRequest 。 對於在重處理 CaptureRequest中只支援一個輸出目標的裝置,提交包含多個輸出目標的重製程 CaptureRequest 將得到 CaptureFailure。 對於支援多個輸出目標的 CaptureRequest裝置,可同時包含在 中的 CaptureRequest 保證輸出目標列於下方 #createCaptureSession createCaptureSession的表格中。 例如,使用支援私人重處理的全功能CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL()裝置,應用程式可建立一個可重處理的擷取會話,包含1個輸入(,PRIV ), MAXIMUM3個輸出 (PRIV, MAXIMUM),PRIV (, PREVIEW, ) 。YUVMAXIMUM 然而,並不保證應用程式能根據下方表格提交常規或重新處理擷取,輸出為(PRIV, MAXIMUM)YUV 和 (, MAXIMUM)#createCaptureSession createCaptureSession 換句話說,請使用下方表格確定建立可重處理擷取會話的保證流配置,並利用下方 #createCaptureSession createCaptureSession 表格判斷可同時提交的常規或重處理 CaptureRequest 的保證輸出目標。
不支援在支援 CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT 10 位元的裝置上進行 10 位元輸出目標的重處理。 嘗試初始化一個可重複的擷取會話,使用多個輸出配置 OutputConfiguration#setDynamicRangeProfile 設定為 10 位元動態範圍設定檔 android.hardware.camera2.params.DynamicRangeProfiles ,將觸發 IllegalArgumentException。
<風格範圍> #rb { 邊框右寬:厚;< }/風格>
有限層級(CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED)裝置至少支援以下串流組合,用於建立可重處理擷取會話,除了先前列出的一般裝置擷取 CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED 組合外:
<表格>TR th colspan=“11”<有限層級額外保證配置,用於建立可重處理擷取會話><br>(< 僅在支援 PRIVATE 重處理時才保證輸入。>僅在支援 YUV 重處理時才保證輸入)PRIV/thYUV/tr<><tr>th colspan=“2” id=“rb”<Input></th>th colspan=“2” id=“rb”<目標 1></th>th colspan=“2” id=“rb”<目標 2></th>th colspan=“2” id=”<><rb“>目標 3</th><th colspan=”2“ id=”rb“> 目標 4</th><行幅=”2“> 範例使用案例/<><th/th/tr><th><>類型</th><th id=”rb“>最大尺寸</th><>類型</th><th id =”rb“>最大尺寸</th th><類型>/th<th id = ”rb“ 最大尺寸/th><th 類型/th th id d=”rb“> 最大尺寸</th><>th 類型</th><th id =”rb“ 最大尺寸>/th<><> th 類型/th<th id =”rb”><最大尺寸/th>/tr<><tr td><><>PRIV//td tdYUVd=“rb”<><>/td tdMAXIMUM<與>輸入<相同>td=“rb”/td<><td>MAXIMUM</td td>d=“rb”<>JPEG/td td/td td d=“rb”<><>/tdMAXIMUM<td>/td<td id=“rb”/td><><td></>td<td id=“rb”/td td dd id=“rb”></td td><><無>取景器靜態影像重處理。<></td/tr><tr td><><>PRIV//TDYUVID=“RB”<><>/TDDMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdPRIVid=“rb”/td td<><>/tdPREVIEWdd d=“rb”<></td>JPEGtd/td dd=“rb”/td<><td>/MAXIMUM<>td<TD id=“RB”></TDD TD><><><>ZSL(Zero-Shutter-Lag)仍在影像中。</td/tr><tr td><><>PRIV//TDYUVID=“RB”<><>/TDDMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdYUVid=“rb”/td td<><>/tdPREVIEWdd d=“rb”<></td>JPEGtd/td dd=“rb”/td<><td>/MAXIMUM<>td<TD id=“RB”></TDD TD><><><>ZSL 靜態和應用程式內的處理映像。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdYUVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>YUVtd/td td id=“rb”/td<><td>PREVIEW</><>tdJPEGtd id=“rb”<><>MAXIMUM</結束><TD>的 ZSL 應用程式內處理,並附帶靜態擷取。</td></tr></table><br>
FULL-Level (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL) 裝置至少支援以下串流組合,以建立可重處理擷取會話,除了裝置的 CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED 串流外:
<表格>TR th colspan=“11”<全層級額外保證配置,用於建立可重處理擷取會話><br>(< 僅在支援 > PRIVATE 重處理時 保證輸入。僅在支援 YUV 重處理時才保證輸入)PRIV/thYUV/tr<><tr th>colspan=“2” id=“rb”<Input></th>th colspan=“2” id=“rb”<目標 1></th th colspan=“2” id=“rb”目標 2>/th<><th colspan=“2” id=“rb”><><>目標 3/th th colspan=“2” id=“rb”< 目標 4></th>th rowspan=“2”< 範例使用案例/><><th/th/tr><tr><類型></th>th id=“rb”<最大尺寸></th><類型></th>th id =“rb”< 最大尺寸></th><>< 類型/th>th id =“rb” 最大尺寸/th th 類型/th th id =“rb”< 最大尺寸></th><th 類型></th>th id =“rb” 最大尺寸/th th 類型/th<th id =“rb”>< 最大尺寸/th th 類型 th id =“rb” 最大尺寸/th th 類型 thid =“rb” 最大尺寸/th th 類型 thid =“rb”> 最大尺寸</th><><><>大小</th></tr><TR TD><>YUV</TD><TD TD ID=“RB”>MAXIMUM</TD><TD>YUV</TD><TD ID=“RB”/>MAXIMUM<TD><TD>PRIV</><TD TD ID=“RB”>PREVIEW</TD/><TD TD>< TD ID=“RB”/TD TD/TD><TD ID=“RB”></TD TD>/<><TD><TD ID=“RB”></TD><TD>最高解析度多幀影像融合 應用程式內處理並搭配常規預覽。</td/tr><tr td><><>/tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD><>/TDYUVTD ID=“RB”<><>/tdMAXIMUM<TD><>/YUVTD TD ID=“RB”/td<><TD/TD TD ID=“RB”>PREVIEW</TD TD>/TD<TD ID=“RB”></TD><><TD>/TD<TD id=“RB”></TD><><TD>最高解析度多幀影像融合<>雙輸入應用程式內處理。</td/tr><tr td><><>PRIV//TDYUVID=“RB”<><>/TDDMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdPRIVid=“rb”/td td<><>/tdPREVIEWdd d=“rb”<></td>YUVtd/td dd=“rb”/td<><td>/RECORD<>td<TD id=“RB”></TDD TD><><><>高解析度 ZSL 應用程式內影片處理,並有定期預覽。</td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdMAXIMUM<td><>/tdPRIVtd d=“rb”/td<><td>MAXIMUM</td td>d=“rb”<>PRIV/td td/td td d=“rb”<><>/tdPREVIEW<td><>/tdYUVtd id=“rb”<><>/tdMAXIMUM<> td/td<dd=“rb”></td><><td>最大解析度<>ZSL 應用程式內處理,並有定期預覽。</td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdMAXIMUM<td><>/tdPRIVtd d=“rb”/td<><td>MAXIMUM</td td>d=“rb”<>YUV/td td/td td d=“rb”<><>/tdPREVIEW<td><>/tdYUVtd id=“rb”<><>/tdMAXIMUM<> td/td<dd=“rb”></td><><td>最大解析度<>兩輸入 ZSL 應用程式內處理。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdPRIVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>YUVtd/td td id=“rb”/td<><td>PREVIEW</><>tdJPEGtd id=“rb”<><>MAXIMUM</結束><TD>ZSL 仍然有擷取和應用程式內處理。</td></tr></table><br>
RAW 能力(CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES包含CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW RAW)裝置還至少支援以下串流組合,以在兩者CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULLCameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED LIMITED及裝置上建立可重處理的擷取會話
<表格>TR th colspan=“11”<RAW-能力 額外保證配置以建立可重處理擷取會話><br>(< 僅在支援>PRIV PRIVATE 重處理時才保證輸入) /thYUV/tr<><tr th>colspan = “2” id=“rb”<Input></th>th colspan=“2” id=“rb”<目標 1/th th colspan=“2” id=“rb”目標 1></th>th colspan=“2” id=“rb”<目標 2></th>th colspan=“2” id=<><“rb”>目標 3</th><th colspan=“2” id=“rb”>目標 4</th><行幅=“2”>範例使用案例/<><th/tr><tr th><>類型</th><th id =“rb”>最大尺寸</th><>th 類型</th><th id =“rb”> 最大大小</th><th>類型</th><th id =“rb” 最大尺寸/th th>類型/th th id = “rb”< 最大尺寸></th>th 類型</th><th id =“rb”> 最大尺寸</th><th>< 類型/th><th id =“rb「>最大大小</th></tr><tr td><>PRIV/YUV</td td><d=“rb”>MAXIMUM</td td><與>輸入<相同 td/td><did id=“rb”/td>MAXIMUMtd<></>YUV<td td><id=“rb”/td>PREVIEWtd<></td td>did id=“rb”RAW<></td>MAXIMUMtd</td>td id=“rb”<><></td td id=“rb”></td><td>dd 互斥 ZSL應用程式內處理與 DNG 擷取。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdPRIVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>YUVtd/td td id=“rb”/td<><td>PREVIEW</><>tdRAWtd id=“rb”<><>MAXIMUM</結束><td>互斥的 ZSL 應用程式內處理與預覽,並支援 DNG 擷取。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdYUVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>YUVtd/td td id=“rb”/td<><td>PREVIEW</><>tdRAWtd id=“rb”<><>MAXIMUM</結束><td>互斥的 ZSL 雙輸入應用程式內處理與 DNG 擷取。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdPRIVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>JPEGtd/td td id=“rb”/td<><td>MAXIMUM</><>tdRAWtd id=“rb”<><>MAXIMUM</結束><td>互斥的 ZSL 仍然能擷取並預覽,並使用 DNG 擷取。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdYUVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>JPEGtd/td td id=“rb”/td<><td>MAXIMUM</><>tdRAWtd id=“rb”<><>MAXIMUM</結束><td>互斥的 ZSL 應用程式內處理,包含靜態擷取與 DNG 擷取。</td></tr></table><br>
LEVEL-3 (CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL==CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3 LEVEL_3) 裝置至少支援以下串流組合,用於建立可重處理擷取會話,除了裝置本身 CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL FULL 的組合外。 請注意,雖然第二種配置允許同時設定 MAXIMUMYUV 與 JPEG 輸出,但該配置未列於一般擷取會話中,因此不允許同時輸出至兩個目標。
<table><tr><th colspan=“13”>LEVEL-3 額外保證配置,用於建立可重處理擷取會話<br>(PRIV 僅在支援 PRIVATE reprocessing 時,輸入才有保證。
YUV輸入永遠是有保障的。</th></tr><tr><th colspan=“2” id=“rb”>Input</th><th colspan=“2” id=“rb”>目標 1</th><colspan=“2” id=“rb”>目標 2</th><colspan=“2” id=“rb”>目標 3</th><colspan=“2” id=“rb”>目標 4</th><th colspan=“2” id=“rb”> 目標 5</th><行距=“2”> 範例使用案例< /th></tr><tr><>類型</th><th id =“rb”> 最大大小</th><th>Type</th><th id =“rb”> 最大尺寸</th><>th 類型</th><th id=“rb”>最大尺寸</th><th>< 類型/th><thid=“rb”>最大尺寸</th><>< 類型/th><thid=“rb”>最大尺寸/ththth類型/ththid<=“rb”最大尺寸></th/thth,thid><><=“rb”>最大尺寸</th></tr><tr><td>YUV</td><dd id=“rb”>MAXIMUM</td><td>YUV</td><td dd=“rb”>MAXIMUM</td td><>/tdPRIVtd d=“rb”/<><>tdPREVIEW<td><>/td tdPRIVd=“rb”/td<><td>640x480</td td>d=“rb”<>RAW/td td/td<td d=“rb”><>MAXIMUM/td<>td</td td d=“rb”></td><><td>使用 ZSL 與 RAW 進行應用程式內觀景器分析。<></td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMAXIMUM<TD>與輸入</td>td d=“rb”<><>/tdMAXIMUM<td><>/td tdPRIVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>PRIVtd/td td id=“rb”/td<><td>640x480</><>tdRAWtd id=“rb”<><>MAXIMUM</結束><td>JPEG</td><td d=“rb”/>MAXIMUM<td td><>應用程式內觀景器分析,輸出包括 ZSL、RAW 及 JPEG 重處理輸出。</td></tr></table><br>
若相機裝置支援多解析度YUV輸入與多解析度YUV輸出,或支援多解析度PRIVATE輸入與多解析度PRIVATE輸出,則以下列出 LIMITED 與 FULL 裝置的額外強制串流組合(MULTI_RES最大尺寸欄位指輸出 aMultiResolutionImageReader,輸入指多解析度InputConfiguration):<表><tr><th colspan=“11”>有限層級額外保證配置,用於建立具有多解析度輸入與多解析度輸出<的可重處理擷取會話 br>(PRIV 僅在支援 YUV PRIVATE 重處理時才保證輸入。只有在支援< YUV 重處理時才保證輸入) /th></tr><tr><th colspan=“2” id=“rb”>Input</th><th colspan=“2” id=“rb”>目標 1</th><th colspan=“2” id=“rb”>目標 2</th><th colspan=“2” id=“rb”>目標 3</th><th colspan=“2” id=“rb”> 目標 4</th><行幅=“2”> 範例使用案例/<><th/tr><tr><th>類型</th><th id=“rb”>最大尺寸</th><>類型</th><th th id=“rb”>最大尺寸</th><>類型</th th th id =“rb” 最大尺寸/th th 類型/th><th thid =“rb”> 最大尺寸</th><>th 類型</th><th id = “rb”> 最大尺寸</th><th>類型/<th><th id=“rb”> 最大尺寸</th></tr><tr><td>PRIV/YUV</td><dd d=“rb”>MULTI_RES</td td><>與輸入</td><td id=“rb”/td td/td dd id=“rb”>MULTI_RES</td><td>JPEG</td><td id=“rb”>MULTI_RES</td><>< td/td><td id=“rb”></td><>< td/td><td id=“rb”></td><td>無觀景器靜態影像再處理。</td/tr><tr td><><>PRIV//TDYUVID=“RB”<><>/TDDMULTI_RES<TD>與輸入</td>td d=“rb”<><>/tdMULTI_RES<td><>/td tdPRIVid=“rb”/td td<><>/tdPREVIEWdd d=“rb”<></td>JPEGtd/td dd=“rb”/td<><td>/MULTI_RES<>td<TD id=“RB”></TDD TD><><><>ZSL(Zero-Shutter-Lag)仍在影像中。</td/tr><tr td><><>PRIV//TDYUVID=“RB”<><>/TDDMULTI_RES<TD>與輸入</td>td d=“rb”<><>/tdMULTI_RES<td><>/td tdYUVid=“rb”/td td<><>/tdPREVIEWdd d=“rb”<></td>JPEGtd/td dd=“rb”/td<><td>/MULTI_RES<>td<TD id=“RB”></TDD TD><><><>ZSL 靜態和應用程式內的處理映像。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMULTI_RES<TD>與輸入</td>td d=“rb”<><>/tdMULTI_RES<td><>/td tdYUVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>YUVtd/td td id=“rb”/td<><td>PREVIEW</><>tdJPEGtd id=“rb”<><>MULTI_RES</結束><TD>的 ZSL 應用程式內處理,並附帶靜態擷取。</td/tr></table>br<><表><tr>th colspan=“11”<全層級額外保證配置,用於建立具有多解析度輸入與多解析度輸出><的可重處理擷取會話 br>(< 僅在支援 > PRIVATE 重處理時才保證輸入。只有在支援 YUV 重處理時才保證輸入)PRIV/thYUV/tr<><tr th>colspan=“2” id=“rb”<><輸入/th>可圈=“2” id=“rb”<目標 1></th>colspan=“2” id=“rb”<目標 2></th>colspan=“2” id=“rb”<目標 3></th>colspan=“2” id=“rb”<目標 4></th>th 行幅=“2”< 範例使用案例/><><th/tr><tr>th<類型></th>th id =“rb”< 最大尺寸></th><><> th th d=“rb”< 最大尺寸/><><th th 類型/th><th id=“rb”>最大尺寸</th><th>類型</th><th id =“rb”>最大尺寸</th><th>類型</th><th id =“rb”> 最大尺寸</th></tr><tr><>td<></td>dd id=“rb”/tdPRIV<td><>MULTI_RES/td<td id=“rb”><>PRIV<></td>MULTI_REStd<></td>td id=PRIV<><“rb”>PREVIEW</td><td>YUV</td><td dd=“rb”>MULTI_RES</td><td></td><td id=“rb”></td td><最大>解析度的 ZSL 應用程式內處理,並附有常規預覽。</td/tr><tr td><><>/tdPRIVtd d=“rb”<><>/tdMULTI_RES<td><>/tdPRIVtd d=“rb”/td<><td>MULTI_RES</td td>d=“rb”<>YUV/td td/td td d=“rb”<><>/tdPREVIEW<td><>/tdYUVtd id=“rb”<><>/tdMULTI_RES<> td/td<dd=“rb”></td><><td>最大解析度<>兩輸入 ZSL 應用程式內處理。</td/tr><tr td><><>PRIV//tdYUVTD ID=“RB”<><>/tdMULTI_RES<TD>與輸入</td>td d=“rb”<><>/tdMULTI_RES<td><>/td tdPRIVd=“rb”/td td<><>/tdPREVIEWtd d=“rb”<></td>YUVtd/td td id=“rb”/td<><td>PREVIEW</><>tdJPEGtd id=“rb”<><>MULTI_RES</結束><TD>ZSL 仍然有擷取和應用程式內處理。</td></tr></table><br>
具備ULTRA_HIGH_RESOLUTION_SENSOR功能的裝置有以下額外保障,客戶端可享有:
<表>tr th colspan=“13”< 額外保證組合用於ULTRA_HIGH_RESOLUTION感測器(YUV / PRIV 輸入僅在支援 YUV / PRIVATE 再處理時保證)></th>/tr<><tr><th colspan=“3” id=“rb”>Input</th><th colspan=“3” id=“rb”>目標 1</th><th colspan=“3” id=“rb”>目標 2</th><th colspan=“3” id=“rb” id=“rb”>目標 3</th><th 行幅=“2”><>範例使用案例< /th></tr><tr><th>類型</th><th id=“rb”> SC Map</th><th th id=“rb”最大>尺寸</th><th>< 類型/th><th id=“rb”> SC Map</th><th th id=“rb”> 最大尺寸</th><>< th 類型/th><th id=“rb” SC Map>/th th th id=“rb”< 最大尺寸></th th類型/th>thid=“rb” SC 地圖</>th<><><> thid=“rb”<><最大尺寸/th>/tr<><tr td><><>/td tdRAWd=“rb”<><>/tdMAX_REStd id=“rb”<><>/tdMAXtd<><>/tdRAWtd d=“rb”<><>/td td id=“rb”/tdMAX_RES<td id=“rb”><>MAX/td<td id=“rb”><>PRIV / YUV/td td id=“rb”<><>DEFAULT<></td>PREVIEWtd colspan=“3” id=“rb”</td td><><>RAW remosaic<>Reprocessing with separate preview</td></tr><tr TD><>RAW</TD><TD TD ID=“RB”>MAX_RES</TD><TD ID=“RB”>MAX</TD><TD>RAW</TD><TD ID=“RB”>MAX_RES</TD><TD ID=“RB”>MAX</TD><TD ID=“RB”>PRIV / YUV</TD><TD ID=“RB”/TD TD ID=“RB”>DEFAULT</TD><>TD ID=“RB”PREVIEW<><>/tdJPEG / YUVtd id=“RB”<><>/tdMAX_RESTD id=“RB”<><>/tdMAX<TD>超高解析度 RAW -< JPEG / YUV 有獨立預覽>/td></tr><tr><td><>/tdYUV / PRIVTD id=“RB”<><>/tdMAX_RESTD id=“RB”<><>/tdMAX<TD><>/TDYUV / PRIVTD id=“RB”/TD TD id=“RB”/TD<TD id=“RB”/><>MAX_RES<><>MAX<td><td id=“rb”>YUV / PRIV</td><td id=“rb”>DEFAULT</td><td d=“rb”>PREVIEW</td><td id=“rb”/td td id=“rb”>JPEG</td><td id=“rb”>MAX_RES</td td><id=“rb”>MAX</td td><> 超高解析度 PRIV / YUV -> YUV / JPEG 重新處理並分離預覽</td></tr></table br><>RAW功能與LEVEL-3硬體等級無需額外強制串流組合。
</p>
<h3>受限高速錄音</h3>
若 以 廣告標示所需的高速 FPS 範圍android.hardware.camera2.params.SessionConfiguration#SESSION_REGULAR normal capture session,應用程式可使用 a CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES 進行高速擷取,此時所有與一般擷取會話相關的 API 語意皆適用。
android.hardware.camera2.params.SessionConfiguration#SESSION_HIGH_SPEED high-speed capture session當相機裝置支援高速影像功能(即>包含 CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES)時,A 可用於高速錄影(CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO=120fps)。 受限高速擷取會話相較於一般擷取會話有特殊限制:
<UL>
<li>除了上述針對常規擷取的輸出目標 Surface 要求外,高速擷取會話最多只支援兩個輸出 Surface,儘管應用程式可能選擇只配置一個 Surface(例如僅預覽)。 所有曲面必須是視頻編碼器曲面(由android.media.MediaRecorder#getSurface或android.media.MediaCodec#createInputSurface取得)或預覽曲面(由 android.view.SurfaceViewandroid.graphics.SurfaceTexture取得 )。 android.view.Surface#Surface(android.graphics.SurfaceTexture) Surface 的尺寸必須是 所StreamConfigurationMap#getHighSpeedVideoSizes報告的其中一個大小。 當多個 Surfaces 被設定時,它們的大小必須相同。</李>
<li>一個主動的高速擷取會話只接受透過 CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList建立的請求清單,而請求清單只能透過 CameraCaptureSession#captureBurst captureBurst,或 CameraCaptureSession#setRepeatingBurst setRepeatingBurst提交給該會話。</李>
<li>請求至此會話的 FPS 範圍必須從 StreamConfigurationMap#getHighSpeedVideoFpsRangesFor中選擇。 應用程式仍 CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE 可用來控制所需的 FPS 範圍。 切換到不同 android.util.Range#getUpper() maximum FPS FPS 範圍可能會觸發某些相機裝置的重新設定,進而增加延遲。 建議應用程式在高速串流時盡量避免不必要的最大目標幀數變動。</李>
<對於>提交至本次會話的請求清單,相機裝置會覆蓋 、 的自動CaptureRequest#CONTROL_MODE control mode曝光(AE)、自動白平衡(AWB)和自動對焦(AF)。CameraMetadata#CONTROL_MODE_AUTOCameraMetadata#CONTROL_AE_MODE_ONCameraMetadata#CONTROL_AWB_MODE_AUTOCameraMetadata#CONTROL_AF_MODE_CONTINUOUS_VIDEO 所有後製區塊模式控制都會被覆寫為快速。 因此,無法手動控制捕捉與後處理參數。 除此之外,只有部分控制項能正常運作,詳情請見。CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO</李>
</ul>
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
CreateCaptureSession(IList<Surface>, CameraCaptureSession+StateCallback, Handler)
透過提供目標輸出的 Surfaces 集給攝影機裝置,建立新的相機擷取會話。
[Android.Runtime.Register("createCaptureSession", "(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V", "GetCreateCaptureSession_Ljava_util_List_Landroid_hardware_camera2_CameraCaptureSession_StateCallback_Landroid_os_Handler_Handler")]
public abstract void CreateCaptureSession(System.Collections.Generic.IList<Android.Views.Surface> outputs, Android.Hardware.Camera2.CameraCaptureSession.StateCallback callback, Android.OS.Handler? handler);
[<Android.Runtime.Register("createCaptureSession", "(Ljava/util/List;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Landroid/os/Handler;)V", "GetCreateCaptureSession_Ljava_util_List_Landroid_hardware_camera2_CameraCaptureSession_StateCallback_Landroid_os_Handler_Handler")>]
abstract member CreateCaptureSession : System.Collections.Generic.IList<Android.Views.Surface> * Android.Hardware.Camera2.CameraCaptureSession.StateCallback * Android.OS.Handler -> unit
參數
- callback
- CameraCaptureSession.StateCallback
回調以通知新擷取會話的狀態。 這個值不可能為零值。
- handler
- Handler
呼叫應呼叫的處理器,或空處理以使用當前執行緒的迴圈器。
- 屬性
備註
此方法在 API 等級 30 中被棄用。 請使用 createCaptureSession(android.hardware.camera2.params.SessionConfiguration) 以獲得完整的設定選項。
透過提供目標輸出的 Surfaces 集給攝影機裝置,建立新的相機擷取會話。
Android 參考資料。android.hardware.camera2.CameraDevice.createCaptureSession
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。