Vonage Video API iOS SDK

Mit dem Vonage Video API iOS SDK können Sie auf der Vonage Video API basierende Videositzungen in Apps nutzen, die Sie für iPad-, iPhone- und iPod touch-Geräte entwickeln.

Alle Applikationen, die die Vonage Video API nutzen, bestehen aus zwei Teilen:

  • Die Client-Seite, die die OpenTok-Client-SDKs und läuft im Browser oder in der mobilen App eines Nutzers
  • Die serverseitige Komponente, die die OpenTok-Server-SDKs und läuft auf Ihrem Server, um Authentifizierungsdaten an den Client weiterzuleiten.

Das Client SDK zum Erstellen von iOS-Apps ist das OpenTok iOS SDK, das die meisten Kernfunktionen für Ihre App bereitstellt, darunter:

  • Verbindung zu einer OpenTok-Sitzung herstellen
  • Veröffentlichen von Streams in einer Sitzung
  • Abonnieren von Streams in einer Sitzung

Client-SDKs sind außerdem für das Web, Android, iOS, Windows, macOS, Linux und React verfügbar. Alle OpenTok-Client-SDKs sind untereinander kompatibel.

Weitere Informationen zu den Grundlagen von OpenTok-Clients, -Servern, -Sitzungen und vielem mehr finden Sie auf der Video API-Grundlagen Seite.

Wichtige Hinweise

  • Die Version 2.35.1+ des SDK unterstützt nur iOS 17 oder höher.
  • Version 2.35.1+ unterstützt den Swift Package Manager. Die CocoaPods-Distribution ist veraltet und wird in einer zukünftigen Version entfernt.
  • Die Version 2.33.0+ des SDK unterstützt Macs mit Apple Silicon, auf denen macOS 14 oder höher läuft. Plattformspezifische Hinweise und Einschränkungen finden Sie im Abschnitt „macOS-Support“ weiter unten.
  • Die Bildschirmfreigabe unter macOS ist auf das eigene Fenster der Anwendung beschränkt - Die Erfassung des gesamten Desktops wird nicht unterstützt. Siehe dieses bekannte Problem für Einzelheiten.
  • Änderungen am iOS 14-Netzwerk, die sich auf weitergeleitete Sitzungen auswirken - siehe die Liste der bekannte Probleme in den Versionshinweisen.
  • Probleme bei der Verwendung des Simulators zur Vorschau Ihrer Anwendung auf einem Mac mit M1-Chip - siehe die Liste der bekannte Probleme in den Versionshinweisen.

Interoperabilität

Apps, die mit dem OpenTok iOS SDK 2.35.1 entwickelt wurden, sind mit OpenTok-Apps kompatibel, die mit Version 2.33 oder höher der OpenTok-Client SDKs entwickelt wurden:

  • OpenTok.js
  • OpenTok Android SDK
  • OpenTok iOS-SDK
  • OpenTok Windows SDK
  • OpenTok macOS SDK
  • OpenTok Linux-SDK
  • OpenTok React Native SDK

Einrichtung

Das Vonage Video iOS SDK unterstützt Swift Package Manager (SPM) als empfohlene Verteilungsmethode, verfügbar seit Version 2.35.1. Die Verteilung über CocoaPods erfolgt über die OTXCFramework pod wird ebenfalls aus Gründen der Abwärtskompatibilität weiter gepflegt, solange die Unterstützung durch CocoaPods noch verfügbar ist; es wird jedoch als veraltet eingestuft und schließlich entfernt.

Empfehlung: Bei neuen Projekten sollte der Swift Package Manager verwendet werden. Wenn Sie derzeit CocoaPods nutzen, lesen Sie bitte die Migration von CocoaPods Abschnitt unten.

Swift Package Manager (empfohlen)

Der Swift Package Manager ist direkt in Xcode integriert und erfordert keine zusätzlichen Tools.

In Xcode:

  1. Öffnen Sie Ihr Projekt in Xcode.
  2. Gehe zu Datei > Paketabhängigkeiten hinzufügen…
  3. Geben Sie die folgende Repository-URL in die Suchleiste ein: https://github.com/opentok/opentok-ios-sdk.git
  4. Wählen Sie die Versionsregel aus (z. B. Bis zum nächsten Major) und klicken Sie auf Paket hinzufügen.
  5. Wählen Sie die OpenTokClientSDKVideo Bibliothek und klicken Sie auf Zum Warenkorb hinzufügen.

SPM-Abhängigkeiten werden beim Erstellen oder Öffnen des Projekts in Xcode automatisch aufgelöst und heruntergeladen. Sie können sie unter dem Paketabhängigkeiten Abschnitt im Projekt-Navigator.

CocoaPods (veraltet)

⚠️ Hinweis zur Veralterung: Die CocoaPods-Distribution wird nicht mehr unterstützt. Die OTXCFramework pod wird weiterhin gepflegt, solange CocoaPods unterstützt wird, wir empfehlen jedoch dringend, auf den Swift Package Manager umzusteigen.

Füge Folgendes zu deiner Podfile:

target 'YourApp' do
pod 'OTXCFramework'
end

Führen Sie anschließend Folgendes aus:

pod install

Öffnen Sie die erstellte .xcworkspace Datei (nicht .xcodeproj), um Ihr Projekt zu erstellen.

Migration von CocoaPods

Falls Ihr Projekt derzeit die OTXCFramework CocoaPods-Pod: Befolgen Sie diese Schritte, um auf den Swift Package Manager umzusteigen:

  1. Entfernen Sie CocoaPods aus Ihrem Projekt:
pod deintegrate

Dadurch werden alle CocoaPods-Build-Phasen und -Einstellungen aus Ihrer .xcodeproj.

  1. CocoaPods-Dateien löschen: Entfernen Podfile, Podfile.lockund die Pods/ Verzeichnis aus Ihrem Projektordner. Löschen Sie außerdem die von CocoaPods erstellte .xcworkspace falls Sie es nicht mehr benötigen.

  2. Fügen Sie das SDK über SPM hinzu: Folgen Sie dem Swift-Paketmanager Befolgen Sie die obigen Anweisungen, um Folgendes hinzuzufügen: https://github.com/opentok/opentok-ios-sdk.git als Paketabhängigkeit.

  3. Aktualisieren Sie Ihre Importe: Wenn Sie importieren würden OpenTok, der Modulname bleibt unverändert – es sind keine Änderungen am Import erforderlich.

  4. Erstellen und Verify: Öffnen Sie Ihre .xcodeproj direkt in Xcode (kein .xcworkspace (erforderlich für reine SPM-Projekte) und führen Sie den Build durch, um sicherzustellen, dass alles korrekt aufgelöst wird.

Systemanforderungen

Die aktuelle Version des OpenTok iOS SDK (2.35.1+) wird unter iOS 17 oder höher unterstützt.

Das OpenTok iOS SDK wird bei WLAN-, 4G/LTE- und 5G-Verbindungen unterstützt.

Für das OpenTok iOS SDK ist Xcode 7 oder höher erforderlich.

Für zuverlässiges Videostreaming sollten Sie sicherstellen, dass Ihr Gerät diese empfohlenen Spezifikationen erfüllt:

  • CPU: Apple A12 Bionic oder neuere Version.
  • ARBEITSSPEICHER: Mindestens 4 GB RAM für Gruppenanrufe und Multitasking.
  • Display: 5,4"+ für iPhone, 10,2"+ für iPad.
  • Batteriekapazität: 3000+ mAh für iPhone, 7000+ mAh für iPad.
  • Netzwerk: Zuverlässige Internetverbindung; funktioniert über Wi-Fi oder Mobilfunk.

Diese Empfehlungen gewährleisten eine stabile Wiedergabe, eine geringere CPU-Auslastung und eine reibungslose Leistung beim Videostreaming.

Gerätebeispiele: iPhone XS oder neuer (2018+), iPad Pro (jede Generation), iPad Air 3 oder neuer, iPad mini 5 oder neuer.

Bauen lernen

Am besten lernen Sie den Umgang mit dem OpenTok iOS SDK, indem Sie das OpenTok-Tutorial „Basic Video Chat“ durcharbeiten:

Tutorial starten

Sobald Sie die Grundlagen der Entwicklung mit dem OpenTok iOS SDK verstanden haben, können Sie sich detailliertere Informationen beschaffen und erfahren, wie Sie Ihre Application mit OpenTok anpassen können. Entwicklerhandbücher. Um bestimmte API-Klassen und -Methoden zu untersuchen, siehe die OpenTok iOS SDK – API-Referenz.

Verwendung des SDK

Das Verzeichnis „OpenTok.framework“ enthält das OpenTok-iOS-SDK.

Das OpenTok-iOS-SDK benötigt die folgenden Frameworks und Bibliotheken:

  • AudioToolbox.framework
  • AVFoundation.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • KernTelefonie.framework
  • CoreVideo.framework
  • Stiftung.framework
  • GLKit.framework
  • libc++.dylib (libc++.tbd in Xcode 7+)
  • libsqlite3.dylib (libsqlite3++.tbd in Xcode 7+)
  • Metall.Rahmen
  • MetalKit.framework
  • MetalPerformanceShaders.framework
  • OpenGLES.framework
  • QuartzCore.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • VideoToolbox.framework

Das OpenTok iOS SDK ist mit der Standardbibliothek libc++ verknüpft. Wenn eine andere Bibliothek, die mit der Standardbibliothek libc++ verknüpft ist, mit einer Xcode-Version älter als 6.0.0 kompiliert wurde, kann dies bei der Verwendung mit dem OpenTok iOS SDK zu Segfaults zur Laufzeit führen. Zu den bekannten inkompatiblen Bibliotheken gehören unter anderem Firebase (Versionen vor 2.1.2 – siehe https://code.google.com/p/webrtc/issues/detail?id=3992) und Google Maps (Versionen vor 1.9.0). Um dieses Problem zu beheben, laden Sie eine Version der anderen Bibliothek herunter, die mit XCode 6.0.0 oder höher kompiliert wurde.

Wenn Sie eine Version von Xcode vor 7.2.0 verwenden, verwenden Sie nicht die -all_load Linker-Flag. Verwenden Sie stattdessen das -force_load Linker-Flag zum Laden bestimmter Bibliotheken, die dies erfordern.

Um auf die Kamera und das Mikrofon zugreifen zu können, müssen Sie in iOS 10 die Werte für die NSCameraUsageDescription und NSMicrophoneUsageDescription Schlüssel in der Datei „Info.plist“. Diese definieren Textzeichenfolgen, die im App-Installationsprogramm angezeigt werden, um den Benutzer darüber zu informieren, warum Ihre App die Kamera und das Mikrofon nutzt. Weitere Informationen finden Sie unter die Apple-Dokumentation über Cocoa-Tasten.

Siehe dieser Inhalt für Informationen zur Verwendung des SDK in Anwendungen, die im Hintergrundmodus laufen.

macOS-Unterstützung

Das OpenTok iOS SDK 2.33.0+ wird auf Apple-Silicon-Macs (M1, M2, M3 und neuer) mit macOS 14 oder höher unterstützt. Unter macOS bietet das SDK weitgehend dieselben Funktionen wie auf iOS-Geräten, allerdings gibt es einige plattformspezifische Unterschiede und Einschränkungen, die zu beachten sind.

Kamera-Verhalten unter macOS

macOS-Geräte haben in der Regel eine einzige eingebaute Kamera (die FaceTime-Kamera), die immer als Frontkamera zugeordnet ist (AVCaptureDevicePositionFront). Externe Kameras, die an den Mac angeschlossen sind, werden ebenfalls als Frontkameras behandelt.

Wichtige Überlegungen:

  • Im Gegensatz zu iOS-Geräten gibt es bei Macs das Konzept der "Rückfahrkamera" nicht.
  • Die cameraPosition Eigenschaft wird unter macOS immer in Frontkamera aufgelöst
  • Um unter macOS zwischen mehreren Kameras (z. B. integrierte vs. externe) umzuschalten, können Sie einen benutzerdefinierten Video-Capturer implementieren. Weitere Informationen finden Sie unter diese Dokumentation.

Handhabung der Rotation

Warnung: macOS-Geräte unterstützen keine automatische Drehung der Bildschirmausrichtung wie iOS-Mobilgeräte.

  • Das Video wird immer im Querformat veröffentlicht.
  • Gerätedrehungsereignisse treten unter macOS nicht auf
  • Applications müssen die Ausrichtung manuell vornehmen, wenn spezielle Layout-Anpassungen erforderlich sind

Taschenlampe (Flashlight) Einschränkung

Warnung: Die Taschenlampenfunktion der Kamera ist unter macOS nicht verfügbar.

  • Einstellung der cameraTorch Eigenschaft zu YES hat keine Auswirkungen auf macOS
  • Mac-Kameras (integriert oder extern) unterstützen keine Taschenlampenfunktion
  • Diese Funktion ist spezifisch für iOS-Mobilgeräte

Code-Muster

Für Beispielcode besuchen Sie unsere Das Repo „vonage-video-ios-sdk-samples“ auf GitHub.

Dokumentation und weitere Informationen

Die Referenzdokumentation befindet sich im Unterverzeichnis „doc“ des SDK sowie in der Lokale SDK-Referenz.

Eine Liste der neuen Funktionen und bekannten Probleme finden Sie in der Versionshinweise.