Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden aanvullende apps beschreven, een uitbreidbaarheidsfunctie voor fabrikanten van camera's om aangepaste toepassingen te bouwen waarmee de camera kan worden geconfigureerd en de standaardinstellingen voor afbeeldingen kunnen worden aangepast.
Introductie
Windows 11 biedt een app-framework voor cameraassistenten waarmee fabrikanten toepassingen kunnen ontwikkelen met de volgende mogelijkheden:
De mogelijkheid om dezelfde standaardwaarde-instellingen weer te geven en/of te wijzigen die door de pagina camera-instellingen worden ondersteund (bijvoorbeeld Helderheid, Contrast, Achtergrondeffecten, enzovoort).
De mogelijkheid om standaardwaarde-instellingen te registreren, bij te werken of te verwijderen voor andere camerabesturingselementen die bekend zijn bij Windows, maar die niet worden weergegeven via de pagina camera-instellingen (bijvoorbeeld het Hue-besturingselement).
Mogelijk maken om standaardwaarde-instellingen te registreren, bij te werken of te verwijderen voor eigen camerabedieningselementen van de fabrikant (bijvoorbeeld het aan/uit-bedieningselement voor het aangepaste lichteffect van de camerafabrikant).
Wanneer een camera een bijbehorende aanvullende app registreert, wordt er een vermelding toegevoegd aan de pagina met camera-instellingen. Als de app is geïnstalleerd, kan deze worden gestart vanaf de pagina camera-instellingen, anders wordt er een koppeling naar de Microsoft Store weergegeven om deze te downloaden.
Aanvullende apps hebben speciale toegang tot een API waarmee ze standaardwaarden, zoals de pagina camera-instellingen, kunnen registreren, bijwerken of verwijderen.
Terminologie en voorwaarden
| Termijn | Definitie |
|---|---|
| Companionapp | Een aangepaste toepassing die is ontwikkeld door de camerafabrikant die configuratie en beheer van een camera mogelijk maakt naast de pagina camera-instellingen. |
| Huidige waarde | De waarde van een camerabesturing die momenteel actief is in de internetprovider van de camera en die in het tijdelijke geheugen van de camera wordt bewaard. |
| Standaardwaarde | Een initiële waarde van een camera-besturingselement dat is opgeslagen op schijf en wordt opgeslagen voor een specifieke camera, voor een specifiek gebruikersaccount, op een specifieke pc. |
| HSA | HardwareOndersteunings-app, een framework dat door Microsoft wordt ondersteund om automatisch hardware-gekoppelde apps te downloaden en te installeren vanuit de Microsoft Store wanneer het apparaat is verbonden. |
| Neural Processing Unit (NPU) | Neurale verwerkingseenheid, toegewezen hardware die is ontworpen voor het verwerken van workloads voor kunstmatige intelligentie met hoge doorvoer en efficiëntie. |
| Windows Studio-effecten | Een verzameling video-effecten die beschikbaar zijn op bepaalde Windows-pc's met NPU's. |
| UVC | USB Video Class, de gestandaardiseerde interface voor het bedienen en streamen van usb aangesloten camera's. |
Vereisten voor companion-apps
Aanvullende apps moeten verpakte toepassingen met een pakketidentiteit zijn. De bijbehorende app moet ook worden vrijgegeven in de Microsoft Store, waarmee de pagina camera-instellingen klanten naar de Store kan leiden om de app te installeren als deze nog niet is geïnstalleerd.
Traditionele bureaubladtoepassingen zonder pakketidentiteit kunnen niet worden gebruikt als een aanvullende app.
Companion-apps als HSA's
Aanvullende apps hoeven niet ook te worden geconfigureerd als een hardwareondersteunings-app, maar wordt ten zeerste aanbevolen. HSA's zijn speciale apps in de Microsoft Store die zijn gekoppeld aan een specifiek hardwareapparaat. Wanneer dat apparaat is verbonden met een pc, wordt de HSA automatisch gedownload en geïnstalleerd vanuit de Microsoft Store, indien beschikbaar.
Een companion-app koppelen aan een camera
De fabrikant van een camera kan een aanvullende app koppelen door een specifieke apparaateigenschapssleutel in te vullen met de PFN (Package Family Name) van de Companion-app:
| Naam | Typologie | Gegevens |
|---|---|---|
| SCSVCamPfn | REG_SZ | <PFN> |
Als u de PFN van de bijbehorende app wilt identificeren, voert u Get-AppxPackage uit vanuit PowerShell, bijvoorbeeld:
Get-AppxPackage -Name CompanionAppName
Als u de secundaire app aan een camera wilt koppelen, gebruikt u een MSOS-descriptor in een UVC-camera of de AddReg-instructie in de INF van het camerastuurprogramma. Gebruik bijvoorbeeld het INF-bestand:
[SocCaptureSim.RearCamera.AddReg]
HKR,,SCSVCamPfn,,%AppPFN%
...
[Strings]
AppPFN="Contoso.CameraCompanion_xxxxxxxx00000"
Wanneer een secundaire app is gekoppeld aan een camera, bevat de pagina camera-instellingen een koppeling naar de bijbehorende app onder de kop Verwante instellingen van de specifieke instellingenpagina van de camera.
Als de bijbehorende app al is geïnstalleerd, wordt er een koppeling weergegeven naar 'Open {companion app name}'. Wanneer erop wordt geklikt, wordt de app gestart.
Als de bijbehorende app nog niet is geïnstalleerd, wordt er een koppeling weergegeven om de Microsoft Store te starten om de app te downloaden en te installeren.
Aan een camera kan slechts één bijbehorende app zijn gekoppeld.
Een aanvullende app starten vanaf de pagina camera-instellingen
Wanneer de pagina camera-instellingen de bijbehorende app start, wordt de symbolische koppeling van de camera doorgegeven als context via de argumenten Application.OnLaunched .
| Argumentatie | Typologie | Gegevens |
|---|---|---|
| cameraId | Snaar / Touwtje | Symbolische koppeling |
Met deze functionaliteit kan de bijbehorende app de juiste camera-instellingen weergeven onder de volgende scenario's:
Eén secundaire app ondersteunt meerdere camera's op één systeem (een OEM-toepassing ondersteunt bijvoorbeeld de camera's aan de voor- en achterzijde op een tablet).
Een klant heeft twee van dezelfde (of dezelfde merk) camera's die zijn verbonden met hun systeem dat wordt beheerd door dezelfde secundaire app.
De camera-instellingenpagina openen vanuit een companion app
Een bijbehorende app kan de pagina met instellingen voor Windows-camera's starten met behulp van een deeplink-URI. Zie Ga naar de pagina met camera-instellingenvoor meer informatie.
Standaardwaarden van secundaire apps configureren
Een aanvullende app kan de IMFCameraConfigurationManager-API gebruiken om de standaardwaardeconfiguratie van de huidige gebruiker te configureren. Met deze API kan de bijbehorende app geconfigureerde standaardwaarden lezen (bijvoorbeeld de standaardwaarden die door de gebruiker zijn ingesteld met behulp van de pagina camera-instellingen), alle standaardwaarden wijzigen, nieuwe standaardwaarden registreren of opgeslagen standaardwaarden verwijderen.
Standaardwaarden worden geregistreerd in de database van het systeem als een paar van een KS-eigenschap-GUID en de bijbehorende waarde. Hierdoor kan de architectuur agnostisch zijn voor de definitie van de KS-eigenschap. Dankzij deze flexibiliteit kan een aanvullende app standaardwaarden instellen, bewerken of verwijderen voor een van de volgende instellingen:
Instellingen die ook kunnen worden geconfigureerd met behulp van de pagina camera-instellingen (bijvoorbeeld helderheid, contrast, achtergrondeffecten, enzovoort)
Instellingen voor andere camerabesturingselementen die bekend zijn bij Windows, maar die niet worden weergegeven via de pagina camera-instellingen (bijvoorbeeld het Hue-besturingselement)
Instellingen voor eigen camerabesturingselementen van de fabrikant (bijvoorbeeld de aan/uit-besturing voor het aangepaste verlichtingseffect van een camerafabrikant)
Helderheid van een aanvullende app configureren
Er zijn een aantal manieren waarop een camera de effectieve helderheid van de vastgelegde afbeelding kan regelen. De helderheid kan bijvoorbeeld worden verhoogd door een eenvoudige toename van de afbeelding toe te passen of door de belichtingstijd van de camera te verhogen.
Windows ondersteunt een verouderde helderheidsregelaar (KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS) dat is ontworpen met eenvoudige regeling in gedachten. Windows ondersteunt ook een besturingselement voor belichtingscompensatie (KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION) dat is ontworpen om een positieve of negatieve belichtingswaarde-bias aan te sturen aan het algoritme voor automatische belichting van een camera.
Ongeacht welk helderheidsbesturingselement door een camera wordt gebruikt, moet deze in de camera worden geïmplementeerd, zodat wanneer de helderheid gecentreerd is, de helderheid neutraal is en dat de klant een offset kan toepassen door de waarde te verhogen of te verlagen. Voor de beste beeldkwaliteit wordt aanbevolen dat camera's de belichtingscompensatie ondersteunen, zodat wanneer een klant de helderheidsregeling aanpast op de camera-instellingenpagina of in een bijbehorende app, de camera wordt gecommandeerd om een vaste positieve of negatieve aanpassing op de belichting toe te passen, ongeacht de lichtomstandigheden en het moment.
Zie de pagina camera-instellingen voor het gedrag van het besturingselement Helderheid op de pagina camera-instellingen op basis van welk besturingselement de camera implementeert voor meer informatie. Als een begeleidende app ook een Helderheid schuifregelaar biedt, is het essentieel om de logica na te bootsen om synchronisatie tussen de Helderheid schuifregelaar op de camerainstellingenpagina en de begeleidende app te garanderen.
Het voorbeeld van de bijbehorende app dat hieronder is gekoppeld, bevat een referentie-implementatie van deze logica.
Bewaken van realtime veranderingen in de huidige waarde.
Als een secundaire app wordt uitgevoerd op hetzelfde moment als de pagina camera-instellingen, is het mogelijk dat de klant een standaardwaarde kan wijzigen met behulp van de pagina camera-instellingen terwijl de secundaire app gelijktijdig wordt uitgevoerd in de gedeelde modus om een voorbeeld weer te geven. In dit geval is het wenselijk dat de bijbehorende app controleert op wijzigingen in de standaardwaarde van de besturingselementen, zodat deze synchroon kan blijven.
Hiervoor kan de companion-app de IMFCameraControlMonitor gebruiken om de wijzigingen in de huidige waarde van de bedieningselementen (KS Properties) van belang te bewaken. Deze wijzigingen kunnen optreden als gevolg van:
Een cameratoepassing (bijvoorbeeld Microsoft Teams) gebruikt de camera en wijzigt de huidige waarde van een besturingselement.
De pagina met camerainstellingen gebruikt de camera en wijzigt de standaardwaarde van een bedieningselement (waarmee ook de huidige waarde wordt bijgewerkt).
Deze API kan worden gebruikt als trigger om de standaardwaarde opnieuw te lezen voor een controle van belang met behulp van de IMFCameraConfigurationManager-API en de gebruikersinterface bij te werken als er standaardwaarden zijn gewijzigd.
Voorbeelden van secundaire apps
Er is een voorbeeldassistent-app beschikbaar op GitHub: CameraSettingsExternalSettingsApp-voorbeeld. In dit voorbeeld ziet u hoe u de IMFCameraConfigurationManager-API gebruikt om de standaardwaarde voor Contrast, Helderheid en Achtergrondsegmentatie te wijzigen.
Een andere voorbeeldtoepassing die laat zien hoe u de IMFCameraControlMonitor-API kunt gebruiken om te controleren op wijzigingen in de besturingselementen van belang, is beschikbaar op GitHub: ControlMonitorApp-voorbeeld.
Zie ook
Voorbeeld CameraSettingsExternalSettingsApp
KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS
KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION