Freigeben über


Kamera-Begleit-Apps

In diesem Artikel werden Begleit-Apps beschrieben, eine Erweiterungsfunktion für Hersteller von Kameras zum Erstellen von benutzerdefinierten Anwendungen, die die Kamera konfigurieren und die Standardbildeinstellungen anpassen können.

Einleitung

Windows 11 bietet ein Kamera-Begleit-App-Framework, mit dem Hersteller Anwendungen mit den folgenden Funktionen entwickeln können:

  • Möglichkeit zum Anzeigen und/oder Ändern der gleichen Standardwerteinstellungen, die die Seite mit den Kameraeinstellungen unterstützt (z. B. Helligkeit, Kontrast, Hintergrundeffekte usw.).

  • Möglichkeit zum Registrieren, Aktualisieren oder Löschen von Standardwerten für andere Kamerasteuerelemente, die windows bekannt sind, aber nicht über die Seite mit den Kameraeinstellungen verfügbar gemacht werden (z. B. das Hue-Steuerelement).

  • Möglichkeit zum Registrieren, Aktualisieren oder Löschen von Standardwerten für herstellereigene Kamerasteuerelemente (z. B. das Ein-/Ausschalten-Steuerelement für den benutzerdefinierten Beleuchtungsanpassungseffekt eines Kameraherstellers).

Wenn eine Kamera eine zugeordnete Begleit-App registriert, wird der Seite "Kameraeinstellungen" ein Eintrag hinzugefügt. Wenn die App installiert ist, kann sie über die Seite mit den Kameraeinstellungen gestartet werden, andernfalls wird ein Link zum Microsoft Store angezeigt, um sie herunterzuladen.

Begleit-Apps haben speziellen Zugriff auf eine API, mit der sie Standardwerte wie die Seite "Kameraeinstellungen" registrieren, aktualisieren oder löschen können.

Terminologie und Voraussetzungen

Begriff Definition
Begleit-App Eine vom Kamerahersteller entwickelte benutzerdefinierte Anwendung, die zusätzlich zur Seite "Kameraeinstellungen" die Konfiguration und Verwaltung einer Kamera ermöglicht.
Aktueller Wert Der Wert eines Kamerasteuerelements, das derzeit im ISP der Kamera aktiv ist und im temporären Speicher der Kamera gehalten wird.
Standardwert Ein Anfangswert eines Kamerasteuerelements, das auf dem Datenträger gespeichert und für eine bestimmte Kamera für ein bestimmtes Benutzerkonto auf einem bestimmten PC gespeichert ist.
Heterogene Systemarchitektur (HSA) Hardwaresupport-App, ein Framework, das von Microsoft unterstützt wird, um hardwarebezogene Apps automatisch aus dem Microsoft Store herunterzuladen und zu installieren, wenn das Gerät verbunden ist.
NPU Neural Processing Unit, dedizierte Hardware für die Verarbeitung von Workloads mit künstlicher Intelligenz mit hohem Durchsatz und Effizienz.
Windows Studio-Effekte Eine Sammlung von Videoeffekten, die auf ausgewählten Windows-PCs mit NPUs verfügbar sind.
UVC USB-Videoklasse, die standardisierte Schnittstelle zum Steuern und Streamen von usb angeschlossenen Kameras.

Anforderungen für Begleit-Apps

Begleit-Apps müssen gepackte Anwendungen mit einer Paketidentität sein. Die Begleit-App muss auch im Microsoft Store veröffentlicht werden, sodass die Seite mit den Kameraeinstellungen Kunden zum Store führt, um die App zu installieren, wenn sie noch nicht installiert ist.

Herkömmliche Desktopanwendungen ohne Paketidentität können nicht als Begleit-App verwendet werden.

Begleit-Apps als HSAs

Begleit-Apps müssen nicht auch als Hardwareunterstützungs-App konfiguriert werden, es wird jedoch dringend empfohlen. HSAs sind spezielle Apps im Microsoft Store, die einem bestimmten Hardwaregerät zugeordnet sind. Wenn dieses Gerät mit einem PC verbunden ist, wird die HSA bei Verfügbarkeit automatisch aus dem Microsoft Store heruntergeladen und installiert.

Zuordnen einer Begleit-App zu einer Kamera

Der Hersteller einer Kamera kann eine Begleit-App zuordnen, indem ein bestimmter Geräteeigenschaftsschlüssel mit dem Paketfamiliennamen (PACKAGE Family Name, PFN) der Begleit-App auffüllt wird:

Name Typ Daten
SCSVCamPfn REG_SZ <PFN>

Um den PFN der Begleit-App zu identifizieren, führen Sie Get-AppxPackage aus PowerShell aus, z. B.:

Get-AppxPackage -Name CompanionAppName

Um die Companion-App einer Kamera zuzuordnen, verwenden Sie einen MSOS-Deskriptor in einer UVC-Kamera oder die AddReg-Direktive in der INF-Datei des Kameratreibers. Verwenden Sie z. B. die INF-Datei:

[SocCaptureSim.RearCamera.AddReg]

HKR,,SCSVCamPfn,,%AppPFN%

...

[Strings]

AppPFN="Contoso.CameraCompanion_xxxxxxxx00000"

Wenn eine Begleit-App einer Kamera zugeordnet ist, enthält die Seite mit den Kameraeinstellungen einen Link zur Begleit-App unter der Überschrift "Verwandte Einstellungen" der Seite mit den spezifischen Einstellungen der Kamera.

Wenn die Begleit-App bereits installiert ist, wird ein Link zu "{ Begleit-App-Name} öffnen" angezeigt. Beim Klicken wird die App gestartet.

Wenn die Begleit-App noch nicht installiert ist, wird ein Link zum Starten des Microsoft Store zum Herunterladen und Installieren der App angezeigt.

Einer Kamera kann nur eine Begleit-App zugeordnet werden.

Starten einer Begleit-App über die Seite "Kameraeinstellungen"

Wenn die Seite mit den Kameraeinstellungen die Begleit-App startet, wird die symbolische Verknüpfung der Kamera über die Argumente Application.OnLaunched als Kontext übergeben.

Streitpunkt Typ Daten
cameraId Schnur Symbolische Verknüpfung

Mit dieser Funktion kann die Begleit-App die einstellungen der richtigen Kamera in den folgenden Szenarien anzeigen:

  1. Eine einzelne Begleit-App unterstützt mehrere Kameras auf einem einzigen System (z. B. unterstützt ein OEM bereitgestellte Anwendung die Front- und Rückkameras auf einem Tablet).

  2. Ein Kunde verfügt über zwei der gleichen Kameras (oder dieselbe Marke), die mit ihrem System verbunden sind, die von derselben Begleit-App verwaltet werden.

Öffnen der Seite "Kameraeinstellungen" aus einer Begleit-App

Eine Begleit-App kann die Windows-Kameraeinstellungsseite mit einem Deeplink-URI starten. Weitere Informationen finden Sie unter Öffnen der Kameraeinstellungen-Seite.

Konfigurieren von Standardwerten aus Begleit-Apps

Eine Begleit-App kann die IMFCameraConfigurationManager-API verwenden, um die Standardwertkonfiguration des aktuellen Benutzers zu konfigurieren. Mit dieser API kann die Begleit-App alle konfigurierten Standardwerte lesen (z. B. die vom Benutzer auf der Seite "Kameraeinstellungen" festgelegten Standardwerte), alle Standardwerte ändern, neue Standardwerte registrieren oder gespeicherte Standardwerte entfernen.

Standardwerte werden in der Datenbank des Systems als Paar einer KS-Eigenschafts-GUID und dem entsprechenden Wert registriert. Dadurch kann die Architektur hinsichtlich der Definition der KS-Eigenschaft unabhängig sein. Diese Flexibilität ermöglicht es einer Begleit-App, Standardwerte für eine der folgenden Einstellungen festzulegen, zu bearbeiten oder zu löschen:

  • Einstellungen, die auch mithilfe der Seite "Kameraeinstellungen" konfiguriert werden können (z. B. Helligkeit, Kontrast, Hintergrundeffekte usw.)

  • Einstellungen für andere Kamerasteuerelemente, die windows bekannt sind, aber nicht über die Seite "Kameraeinstellungen" verfügbar gemacht werden (z. B. das Hue-Steuerelement)

  • Einstellungen für herstellereigene Kamerasteuerungen (z. B. die Ein-/Ausschaltsteuerung für den herstellerdefinierten Beleuchtungsanpassungseffekt eines Kameraherstellers)

Konfigurieren der Helligkeit über eine Begleit-App

Es gibt einige Möglichkeiten, wie eine Kamera die effektive Helligkeit des aufgenommenen Bilds steuern kann. Beispielsweise kann die Helligkeit erhöht werden, indem eine einfache Verstärkung auf das Bild angewendet wird, oder durch Erhöhen der Belichtungszeit der Kamera.

Windows unterstützt ein älteres Helligkeitssteuerelement (KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS), das mit einfachen Verstärkungskontrollen entworfen wurde. Windows unterstützt auch ein Belichtungskorrektur-Steuerelement (KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION), das entwickelt wurde, um einen positiven oder negativen Belichtungswert-Bias für den Auto-Belichtungsalgorithmus einer Kamera zu steuern.

Unabhängig davon, welches Helligkeitssteuerelement von einer Kamera verwendet wird, sollte es so in der Kamera implementiert sein, dass die Helligkeit dann neutral ist, wenn das Steuerelement „zentriert“ ist, und dass der Kunde einen Offset anwenden kann, indem er den Wert erhöht oder verringert. Um die beste Bildqualität zu erzielen, wird dringend empfohlen, dass Kameras die Steuerung der Belichtungskorrektur unterstützen, sodass die Kamera, unabhängig von den Beleuchtungsbedingungen, eine feste positive oder negative Anpassung der Belichtung vornimmt, wenn ein Kunde das Helligkeitssteuerelement auf der Kameraeinstellungsseite oder in einer Begleit-App anpasst.

Weitere Informationen finden Sie auf der Seite "Kameraeinstellungen" für das Verhalten des Helligkeitssteuerelements auf der Seite "Kameraeinstellungen", basierend darauf, welches Steuerelement die Kamera implementiert. Wenn eine Begleit-App auch einen Helligkeitsschieberegler bietet, ist es wichtig, die Logik zu replizieren, um die Synchronisierung zwischen dem Helligkeitsschieberegler auf der Kameraeinstellungsseite und der Begleit-App sicherzustellen.

Das unten verknüpfte Begleit-App-Beispiel enthält eine Referenzimplementierung dieser Logik.

Überwachung von Echtzeitänderungen des aktuellen Werts

Wenn eine Begleit-App gleichzeitig mit der Seite "Kameraeinstellungen" ausgeführt wird, kann der Kunde einen Standardwert mithilfe der Kameraeinstellungsseite ändern, während die Begleit-App gleichzeitig im gemeinsam genutzten Modus ausgeführt wird, um eine Vorschau anzuzeigen. In diesem Fall ist es wünschenswert, dass die Begleit-App auf Änderungen am Standardwert der Steuerelemente überwacht, damit sie synchronisiert bleiben kann.

Dazu kann die Companion-App den IMFCameraControlMonitor verwenden, um Änderungen des aktuellen Werts von Steuerelementen (KS-Eigenschaften) zu überwachen. Diese Änderungen können aufgrund von Folgenden auftreten:

  • Eine Kameraanwendung (z. B. Microsoft Teams) verwendet die Kamera und ändert den aktuellen Wert eines Steuerelements.

  • Die Kameraeinstellungsseite verwendet die Kamera und ändert den Standardwert eines Steuerelements (wodurch auch der aktuelle Wert aktualisiert wird).

Diese API kann als Trigger verwendet werden, um den Standardwert für ein Steuerelement von Interesse mithilfe der IMFCameraConfigurationManager-API neu zu lesen und die Benutzeroberfläche zu aktualisieren, wenn sich Standardwerte geändert haben.

Beispiele für Begleit-Apps

Eine Beispiel-Begleit-App ist auf GitHub verfügbar: CameraSettingsExternalSettingsApp-Beispiel. In diesem Beispiel wird veranschaulicht, wie Sie die IMFCameraConfigurationManager-API verwenden, um den Standardwert für Kontrast, Helligkeit und Hintergrundsegmentierung zu ändern.

Eine weitere Beispielanwendung, die zeigt, wie Sie die IMFCameraControlMonitor-API verwenden, um Änderungen an interessanten Steuerelementen zu überwachen, ist auf GitHub verfügbar: ControlMonitorApp-Beispiel.

Siehe auch

Application.OnLaunched

Seite "Kameraeinstellungen"

CameraSettingsExternalSettingsApp-Beispiel

ControlMonitorApp-Beispiel

Get-AppxPackage

Hardwareunterstützungs-App

IMFCameraConfigurationManager

IMFCameraControlMonitor

KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS

KSPROPERTY_CAMERACONTROL_EXTENDED_EVCOMPENSATION

Starten Sie die Seite mit den Kameraeinstellungen

MSOS-Deskriptor

Verpackte Anwendungen