JavaScript- und Python-BYOD-Steuerung
Wenn du Code-Beispiele willst, die heute mit Yealink funktionieren, behandle UVC85-BYOD und CP50 als Standard-Meeting-Peripherie auf dem Host-Computer.
1. Warum das funktioniert​
Yealink gibt öffentlich an:
UVC85-BYODverbindet sich mit einem Computer ĂĽber ein einzelnesType-C-Kabel,CP50unterstĂĽtzt USB-Verbindung zu einem Computer oder Conference-Display-OPS,- das gesamte Kit ist Plug-and-Play.
Das bedeutet, dass deine App normalerweise ĂĽber Standard-OS-Media-APIs darauf zugreifen kann.
2. Browser-JavaScript​
Schritt 1: das Gerät verbinden​
Verbinde das Yealink-Kit mit dem Host-Computer und prĂĽfe, dass das Betriebssystem Folgendes sieht:
- eine Kamera,
- ein Mikrofon,
- und in der Regel einen Lautsprecher oder Audioausgabepfad.
Schritt 2: Geräte auflisten​
async function listDevices() {
const devices = await navigator.mediaDevices.enumerateDevices();
return devices.map(({ deviceId, kind, label }) => ({ deviceId, kind, label }));
}
listDevices().then(console.table);
Schritt 3: Yealink-Geräte auswählen​
async function openYealinkStream() {
const devices = await navigator.mediaDevices.enumerateDevices();
const video = devices.find(
(device) => device.kind === 'videoinput' && /yealink|uvc85/i.test(device.label)
);
const audio = devices.find(
(device) => device.kind === 'audioinput' && /yealink|cp50/i.test(device.label)
);
return navigator.mediaDevices.getUserMedia({
video: video ? { deviceId: { exact: video.deviceId } } : true,
audio: audio ? { deviceId: { exact: audio.deviceId } } : true,
});
}
Schritt 4: Stream an Video anhängen​
const videoElement = document.querySelector('video');
openYealinkStream().then((stream) => {
videoElement.srcObject = stream;
});
Praxishinweise​
- Browser-Labels sind erst zuverlässig, nachdem die Berechtigung erteilt wurde.
- Gerätenamen unterscheiden sich je nach Betriebssystem.
- Dieser Weg nutzt Standard-Browser-Media-APIs, kein Yealink-spezifisches SDK.
3. Python-Videobeispiel​
import cv2
cap = cv2.VideoCapture(0)
if not cap.isOpened():
raise RuntimeError("Could not open camera")
while True:
ok, frame = cap.read()
if not ok:
break
cv2.imshow("Yealink camera", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Verwende den korrekten Kameraindex für deinen Rechner. Auf Systemen mit mehreren Kameras zuerst die Geräte mit OS-Tools oder OpenCV-spezifischen Helfern auflisten.
4. Python-Audiobeispiel​
import sounddevice as sd
for index, device in enumerate(sd.query_devices()):
print(index, device["name"], device["max_input_channels"], device["max_output_channels"])
Nachdem du den Yealink-Geräteindex identifiziert hast:
import sounddevice as sd
duration = 5
sample_rate = 48000
device_index = 1
recording = sd.rec(
int(duration * sample_rate),
samplerate=sample_rate,
channels=1,
dtype="float32",
device=device_index,
)
sd.wait()
print(recording.shape)
5. Was du auf diesem Weg steuern kannst und was nicht​
Gute Anwendungsfälle:
- die Yealink-Kamera und das -Mikrofon auswählen,
- die Videoaufnahme starten,
- das Kit in WebRTC- oder Python-Media-Apps nutzen,
- eigene Meeting-Tools betreiben,
- interne Desktop- oder Browser-Utilities bauen.
Aus den öffentlichen Doks nicht garantiert:
- Kamera-Schwenk-, -Neige- oder -Zoom-Steuerung ĂĽber eine Yealink-spezifische API,
- geräteseitige Konfigurations-RPCs,
- Raum-Hardware-Orchestrierungs-APIs,
- öffentliche Yealink-SDK-Methoden für dieses Kit.
Wenn du PTZ oder Gerätekonfiguration über die generische Medienaufnahme hinaus brauchst, ist der nächste Schritt der Yealink-Support oder die Partnerdokumentation.