Übersicht
Zur Ansteuerung von Endgeräten (wie Fußschalter oder Handmikrofone) wie auch zur Nutzung von virt. Audioanälen (Philips oder Grundig) sind in aller Regel herstellerspezifische Treiber erforderlich, die sich zudem je nach Umgebung (lokaler Betrieb oder Citrix oder WTS) u.U. erheblich unterscheiden.
Zur Erläuterung der Zusammenhänge sei der Betrieb und die Ansteuerung eines Philips SpeechMikes durch eine 4voice Clientanwendung skizziert.
Lokale Ansteuerung eines Philips SpeechMike
Das SpeechMike ist (wie die meisten Handmikrofone) ein Gerät, das mehrere logisch getrennte USB-Devices enthält. Hauptsächlich eine USB Audio-Komponente und ein HID Gerät, über das im Wesentichen Tastensignale übermittelt werden:
Zur Verwendung des Audiosystems sind keine besonderen Treiber zuständig. Es werden die mit Windows mitgelieferten USB Audio-Treiber verwendet.
Um zu erfahren, ob z.B. eine Taste am SpeechMike gedrückt worden ist, verwenden die 4voice Clientanwendungen ein sog. COM (Component Object Model) API.
Dieses wird vom SpeechMike SDK bereitgestellt und in der Datei SpMikeCtrl.dll (in %COMMONPROGRAMFILES(x86)%\Philips Speech Shared\Components
) implementiert.
Diese Datei ist im 4voice Treiberpaket enthalten und wird (u.a.) darüber installiert.
Falls dieser sog. COM Server nicht installiert oder nicht korrekt registriert ist, wird ein Fehler 0x80040154 (REGDB_E_CLASSNOTREG) erzeugt, wenn versucht wird, das SpeechMike anzusprechen.
Ansteuerung SpeechMike unter Citrix
In Terminalserver- oder virtualisierten Umgebungen (z.B. eben Citrix, aber auch WTS oder VMWare View) besteht die Herausforderung darin, dass das anzusteuernde Endgerät nicht an dem Rechner angeschlossen ist, auf dem die Clientanwendung läuft.
D.h. jegliche Kommunikation mit dem Gerät muss zunächst abgefangen, übers Netzwerk übertragen und auf der anderen Seite wieder an den Empfänger weitergegeben werden:
In diesem Fall läuft die Clientanwendung in einer Sitzung auf einem Windows Terminal Server.
Das SpeechMike ist an einem (Thin)Client angeschlossen, der die Serversitzung auf dem Monitor des Thin Clients anzeigt.
Aus Sicht der Clientanwendung ist es im Wesentlichen transparent, ob das SpeechMike lokal angeschlossen ist oder nicht - es werden in beiden Fällen genau die gleichen Schnittstellen und Mechanismen verwendet.
Das bedeutet, dass auch beim Betrieb unter z.B. Citrix die Treiber des SpeechMike SDK installiert sein müssen (dann natürlich auf dem Server).
Um die Audioübertragung zwischen Client und Server kümmert sich i.d.R. eine spezielle Komponente von Citrix, genannt "HDX Audio". Darauf wird hier jedoch nicht näher eingegangen, weil sich dies für alle Handmikrofone gleich verhält und keine separaten Treiber erfordert.
Um in der Clientanwendung auf dem Server mitzubekommen, dass am SpeechMike am Client eine Taste gedrückt wurde, ist eine Kommunikation über das Netz erforderlich. Die Kommunikationspartner sind dabei die für die jeweilige Terminalserver-/Virtualisierungsumgebung maßgeschneiderten "Extensions" des jeweiligen Herstellers.
D.h. es gibt Philips Citrixtreiber, Grundig WTS Treiber, (vermutlich) Olympus VMWare-Treiber und viele weitere.
Diese Extensions bestehen in aller Regel aus einem Treiber, der auf dem Server installiert werden muss und einem Treiber, der auf dem Client installiert (oder bei Linux ThinClients meist nur aktiviert) werden muss.
Nur, wenn diese 2 Teile zusammenpassen, kann die Ansteuerung erfolgen.
(NB: Ab G13 müssen die Server-Treiber nicht mehr explizit installiert werden. Sie sind dort bereits in den Komponenten integriert.)
Fehlerbilder
Leider gibt es keine eindeutigen und über alle Hersteller gleichen Fehlermeldungen, wenn auf dieser Ebene etwas fehlt.
Bei Grundig erscheint i.d.R. diese Meldung:
Bei Philips kann es zu einer Verzögerung (Hängenbleiben) von 20 Sekunden oder mehr kommen, während die Serverkomponenten versuchen, mit den Clientkomponenten Verbindung aufzunehmen.
Bei Verwendung des Philips DPMControl (gleiches Grundprinzip wie beim SpeechMike, aber zur Ansteuerung von Philips DPMs) kann es zu einem Fehler 0x8004005 (E_FAIL) bei der Initialisierung kommen.
"Bittigkeit" der Citrix-/WTS-Treiber
Meist gibt es von den Server- und Clienttreibern auch noch verschiedene Varianten für 32- und 64bit.
Wählt man hier die falsche Kombination, funktioniert die Ansteuerung ebenfalls nicht.
Server
Auf Serverseite ist ausschlaggebend, ob es sich bei der Clientanwendung um eine 32bit oder eine 64bit Anwendung handelt.
Die 4voice Anwendungen sind alle 32bit, d.h. es sind immer die 32bit Servertreiber zu installieren.
Client
Am Client bestimmt die Terminalserver-Lösung die Bittigkeit der Client-Treiber.
Die Citrix Workspace App (früher: Citrix Receiver), welche die Citrixsitzung am Client darstellt, gibt es nur als 32bit-Variante. Daher sind unter Citrix die (einzig existierenden) 32bit Clienttreiber zu installieren.
Der Windows Terminalserver Client (mstsc.exe), der die gleiche Aufgabe für den Windows Terminalserver erfüllt, verwendet die gleiche Bittigkeit wie das zugrunde liegende Betriebssystem.
D.h. auf einem 64bit Windows müssen die 64bit WTS Clienttreiber installiert werden und auf einem 32bit Windows die 32bit WTS Clienttreiber.
Virtuelle Audiokanäle
Die o.g. Abhängigkeiten spiegeln sich auch bei Verwendung eines virtuellen Audiokanales wider.
Philips
Beim SDK von Philips sind die Treiber für die Hard- und Software identisch und werden über das gleiche Paket installiert.
Grundig
Bei Grundig wird zwischen reiner Hardwareansteuerung (Grundig HDK) und Hardware- zzgl. Softwarekomponenten (Grundig SDK; virt. Audiokanal) unterschieden.
Im Anhang finden sich PDFs zur Implementierung der entsprechenden Komponenten; sowohl client- als auch serverseitig (WTS und Citrix). Siehe bzgl. Grundig auch folgenden Artikel Grundig-MCI-Error
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.