相機 隨附應用程式
本文說明隨附應用程式,這是相機製造商的擴充性功能,可建置可設定相機並調整預設影像設定的自定義應用程式。
簡介
Windows 11 提供相機隨附應用程式架構,可讓製造商開發具有下列功能的應用程式:
能夠顯示和/或修改相機設定頁面支援的相同預設值設定(例如亮度、對比、背景效果等等)。
能夠註冊、更新或刪除 Windows 已知的其他相機控件的預設值設定,但不會透過相機設定頁面公開(例如 Hue 控件)。
能夠註冊、更新或刪除製造商專屬相機控件的預設值設定(例如,相機製造商自定義光源調整效果的開啟/關閉控件)。
當相機註冊相關聯的隨附應用程式時,會將專案新增至相機設定頁面。 如果已安裝應用程式,可以從相機設定頁面啟動應用程式,否則會顯示 Microsoft Store 的連結來下載。
隨附應用程式具有 API 的特殊存取權,可讓他們註冊、更新或刪除預設值,例如相機設定頁面。
術語和必要條件
詞彙 | 定義 |
---|---|
隨附應用程式 | 相機製造商所開發的自定義應用程式,除了相機設定頁面之外,還允許設定和管理相機。 |
目前的值 | 相機的 ISP 中目前作用中的相機控制項值,並保留在相機的暫存記憶體中。 |
預設值 | 相機控制元件的初始值,該控件會儲存至磁碟,並針對特定的相機儲存在特定電腦上的特定用戶帳戶。 |
HSA | 硬體支援應用程式,Microsoft 所支援的架構,會在裝置連線時,從 Microsoft Store 自動下載並安裝與硬體相關聯的應用程式。 |
NPU | 類神經處理單元,專用硬體,旨在以高輸送量和效率處理人工智慧工作負載。 |
Windows Studio 效果 | 選取具有 NPU 的 Windows 計算機上可用的視訊效果集合。 |
UVC | USB 視訊類別,這是從 USB 連接的相機控制及串流的標準化介面。 |
隨附應用程式需求
隨附應用程式必須是 具有套件身分識別的封裝應用程式 。 隨附應用程式也必須在 Microsoft Store 上發行,這可讓相機設定頁面引導客戶在尚未安裝應用程式時安裝應用程式。
沒有套件身分識別的傳統傳統型應用程式無法作為隨附應用程式使用。
隨附應用程式作為 HSA
不需要隨附應用程式也設定為 硬體支援應用程式,但強烈建議使用。 HSA 是 Microsoft Store 中與特定硬體裝置相關聯的特殊應用程式。 當該裝置連線到計算機時,HSA 會在可用時自動從 Microsoft Store 下載並安裝。
將隨附應用程式與相機產生關聯
相機製造商可以使用隨附應用程式的套件系列名稱 (PFN) 填入特定裝置屬性密鑰,以建立隨附應用程式的關聯:
名稱 | 類型 | 資料 |
---|---|---|
SCSVCamPfn | REG_SZ | <PFN> |
若要識別隨附應用程式的 PFN,請從 PowerShell 執行 Get-AppxPackage ,例如:
Get-AppxPackage -Name CompanionAppName
若要將隨附應用程式與相機產生關聯,請在UVC相機中使用 MSOS描述元 ,或在相機驅動程式的INF中使用AddReg指示詞。 例如,使用 INF 檔案:
[SocCaptureSim.RearCamera.AddReg]
HKR,,SCSVCamPfn,,%AppPFN%
...
[Strings]
AppPFN="Contoso.CameraCompanion_xxxxxxxx00000"
當隨附應用程式與相機相關聯時,相機設定頁面會在相機特定設定頁面的 [相關設定] 標題下,包含隨附應用程序的連結。
如果已安裝隨附應用程式,鏈接會顯示為 「開啟 {companion 應用程式名稱}」。 按兩下時,會啟動應用程式。
如果尚未安裝隨附應用程式,則會顯示連結以啟動 Microsoft Store 以下載並安裝應用程式。
相機只能有一個相關聯的隨附應用程式。
從相機設定頁面啟動隨附應用程式
當相機設定頁面啟動隨附應用程式時,相機的符號連結會透過 Application.OnLaunched 自變數傳遞為內容。
引數 | 類型 | 資料 |
---|---|---|
cameraId | String | 符號連結 |
這項功能可讓隨附應用程式在下列案例下顯示正確的相機設定:
單一隨附應用程式支援單一系統上的多個相機(例如,OEM 提供的應用程式支援平板電腦上的前端和後方相機)。
客戶有兩個相同(或相同品牌)相機,連線到由相同隨附應用程式管理的系統。
從隨附應用程式啟動相機設定頁面
隨附應用程式可以使用深層連結URI來啟動Windows相機設定頁面。 如需詳細資訊,請參閱 啟動相機設定頁面。
設定隨附應用程式的預設值
隨附應用程式可以使用IMF相機 ConfigurationManager API 來設定目前使用者的預設值組態。 此 API 可讓隨附應用程式讀取任何已設定的預設值(例如,使用者使用相機設定頁面所設定的預設值)、修改任何預設值、註冊任何新的預設值,或移除已儲存的預設值。
預設值會在系統的資料庫中註冊為一對 KS 屬性 GUID 和對應的值。 這可讓架構與 KS 屬性的定義無關。 此彈性可讓隨附應用程式設定、編輯或刪除下列任何設定的預設值:
設定,也可以使用相機設定頁面進行設定(例如亮度、對比、背景效果等等)
設定 Windows 已知的其他相機控制件,但不會透過相機設定頁面公開(例如 Hue 控制項)
適用於製造商專屬相機控制元件的 設定 (例如,相機製造商自定義光源調整效果的開啟/關閉控制件)
從隨附應用程式設定亮度
相機有幾種方式可控制所擷取影像的有效亮度。 例如,藉由將簡單的增益套用至影像,或藉由增加相機的曝光時間來增加亮度。
Windows 支援舊版亮度控件 (KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS),其設計時考慮了簡單的增益控件。 Windows 也支援曝光補償控件(KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION),其設計目的是要對相機的自動曝光演算法產生正面或負面曝光值偏差。
無論相機使用哪一個 Brightness 控件,都應該在相機中實作,如此一來,當「置中」時,亮度為中性,而且客戶可以藉由提高或降低值來套用位移。 為了獲得最佳影像品質,強烈建議相機支援曝光補償控件,以便客戶在相機設定頁面或隨附應用程式中調整亮度控件時,命令相機將固定的正面或負面偏差套用至曝光,而不論光線狀況為何。
如需詳細資訊,請參閱 相機設定頁面 ,以了解相機設定頁面上亮度控件的行為,以根據相機實作的控件。 如果隨附應用程式也提供 [亮度] 滑桿,請務必復寫邏輯,以確保相機設定頁面中的 [亮度] 滑桿與隨附應用程式之間的同步處理。
以下連結的隨附應用程式範例包含此邏輯的參考實作。
監視即時目前值變更
如果隨附應用程式與相機設定頁面同時執行,客戶可能會使用相機設定頁面變更預設值,而隨附應用程式同時以共用模式執行以顯示預覽。 在此情況下,建議隨附應用程式監視控件預設值的變更,讓控件保持同步。
若要這樣做,隨附應用程式可以使用IMF相機ControlMonitor來監視相關控制項目前值 (KS 屬性) 的變更。 這些變更可能會因為下列原因而發生:
相機應用程式(例如 Microsoft Teams)正在使用相機,並變更控件的目前值。
相機設定頁面使用相機,並變更控件的預設值(也會更新目前值)。
此 API 可作為觸發程式,以使用 IMF 相機 ConfigurationManager API 重新讀取感興趣控件的預設值,並在任何預設值變更時更新 UI。
隨附應用程式範例
GitHub 上提供範例隨附應用程式:相機設定 External 設定 App 範例。 此範例示範如何使用IMF相機 ConfigurationManager API 來變更對比、亮度和背景分割的預設值。
另一個示範如何使用IMF相機ControlMonitor API監視相關控件變更的範例應用程式,請參閱 GitHub:ControlMonitorApp 範例。
另請參閱
KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS