Vonage Video API Android SDK

Mit dem Vonage Video API Android SDK können Sie von der Vonage Video API unterstützte Videositzungen in Anwendungen verwenden, die Sie für Android-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 Android-Apps ist das OpenTok Android 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, iOS, Windows, macOS, Linux und React verfügbar. Alle OpenTok-Client-SDKs sind miteinander kompatibel.

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

Wichtige Hinweise

  • Das Android SDK 2.35.1+ unterstützt Android 17 (API-Level 37). Für dieses Update sind keine neuen Berechtigungen erforderlich.

  • Android SDK 2.30.0+ unterstützt sowohl Geräte mit 4 KB als auch mit 16 KB Seitengröße.

  • Für das Android SDK 2.29.1+ ist das ACCESS_NETWORK_STATE Erlaubnis, und auf Android API-Level 35+ erfordert es auch die REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Berechtigung. Sehen Sie sich die vollständige Liste der erforderliche Berechtigungen.

  • Android SDK 2.28.0+ erfordert eine Android-API-Stufe von mindestens 24.

  • Für Android SDK 2.24.3+, 2.25.4+ und 2.26.0+ ist mindestens die Android API-Stufe 23 erforderlich.

  • Android SDK 2.24.0 und höher unterstützen keine 32-Bit-x86-Architekturen mehr.

  • Applications, die auf API-Level 31 und höher abzielen, benötigen jetzt eine Genehmigung READ_PHONE_STATE. Sehen Sie sich die vollständige Liste der erforderliche Berechtigungen.

Interoperabilität

Apps, die mit dem OpenTok Android 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

Eine Maven-Version ist verfügbar unter https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. Die Artefakt-ID lautet "opentok-android-sdk". Passen Sie Ihre App so an, dass das OpenTok-Android-SDK von https://search.maven.org/artifact/com.opentok.android/opentok-android-sdk. Zum Beispiel:

  1. Bearbeiten Sie die build.gradle für Ihr Projekt und fügen Sie den folgenden Codeschnipsel in die allprojects/repositories Abschnitt:

    mavenCentral()
    
  2. Ändern Sie die Datei build.gradle der Anwendung und fügen Sie den folgenden Codeschnipsel in die Datei dependencies Abschnitt:

    implementation 'com.opentok.android:opentok-android-sdk:2.35.1'
    
  3. Ändern Sie die Datei build.gradle der Anwendung und fügen Sie den folgenden Codeschnipsel in die Datei android Abschnitt:

    Für Android SDK ab Version 2.28.1:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    

    Für das Android SDK zwischen 2.22.0 und 2.28.1:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    

    Für Android SDK-Versionen unter 2.22.0:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

Ihre App muss eine Sitzungs-ID und ein Token verwenden, die mit Ihrem OpenTok-API-Schlüssel generiert wurden. Diese erhalten Sie, indem Sie sich bei Ihrem Vonage Video API-Konto.

Zu Testzwecken können Sie eine Sitzungs-ID und ein Token generieren, indem Sie sich bei Ihrem Vonage Video API-Konto. Für eine Produktionsanwendung sollten Sie eindeutige Tokens (und Sitzungs-IDs, falls Sie mehrere Sitzungen unterstützen müssen) mithilfe der Serverseitige OpenTok-Bibliotheken.

Systemanforderungen

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

  • CPU: Ein aktueller Dual-Core-Prozessor; ARM64 (ARMv8) Quad-Core oder höher mit 2,0 GHz+ (z. B. Qualcomm Snapdragon 600+ Serie, Samsung Exynos 7 Serie oder höher, Google Tensor (Pixel-Geräte)).
  • GRAFIKPROZESSOR: Adreno 500+ Serie (Qualcomm), Mali-G71+ (ARM); für hardwarebeschleunigte Videokodierung/-dekodierung.
  • ARBEITSSPEICHER: Mindestens 6 GB RAM für Gruppenanrufe und Multitasking.
  • Bildschirm: 5"+ für bessere Benutzererfahrung.
  • Akkukapazität: 3000+ mAh für ausgedehnte Videogespräche.
  • 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 nach Kategorie: Samsung Galaxy A12, Moto G Play und Nokia G10 sind Einsteigergeräte; Google Pixel 6a, Samsung Galaxy A52/A53 und OnePlus Nord sind Mittelklassegeräte; und Samsung Galaxy S23/S24, Google Pixel 8 Pro und OnePlus 11 sind Oberklassegeräte.

Bauen lernen

Der beste Weg, um den Umgang mit dem OpenTok-Android-SDK zu erlernen, ist, der OpenTok-Anleitung zu folgen Einführung in den Video-Chat.

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

Anforderungen an Entwickler und Kunden

Das OpenTok Android SDK unterstützt gleichzeitig einen veröffentlichten Audio-Video-Stream, einen abonnierten Audio-Video-Stream und bis zu fünf weitere abonnierte reine Audio-Streams. Um mit dem OpenTok Android SDK mehr als zwei Clients in einer Sitzung zu verbinden, erstellen Sie eine Sitzung, die den OpenTok Media Router nutzt (eine Sitzung, bei der der Medienmodus auf „routed“ gesetzt ist). Siehe Der OpenTok Media Router und die Medienmodi.

Das SDK wird in Hochgeschwindigkeits-Wi-Fi- und 4G-LTE-Netzen unterstützt.

Das OpenTok-Android-SDK wird auf den Architekturen armeabi-v7a, arm64-v8a und x86_64 unterstützt.

Das SDK unterstützt ab Version 2.30.0 sowohl Geräte mit 4 KB als auch mit 16 KB Seitengröße. Dies gewährleistet die Funktionalität, verbessert die Kompatibilität und verhindert Abstürze. Für weitere Informationen siehe diese Android-Dokumentation auf Seite Größen.

Das OpenTok Android SDK funktioniert auf jedem Gerät mit Android 7.0 oder höher (Nougat, API-Level 24), das über eine Kamera (zum Senden von Videos) sowie ausreichende CPU- und Speicherressourcen verfügt.

Berechtigungen

Das OpenTok-Android-SDK benötigt folgende Berechtigungen:

  • android.permission.ACCESS_NETWORK_STATE -- Das OpenTok-Android-SDK benötigt diese Berechtigung ab Version 2.29.1.

  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS -- Das OpenTok Android SDK benötigt diese Berechtigung ab Version 2.29.1 bei API-Level 35 und höher.

  • android.permission.BLUETOOTH_CONNECT -- Sie müssen dies für API-Level 31 und höher aktivieren. Wenn Sie das Bluetooth-Gerät mit Android SDK DefaultAudioDevice für API-Level 31 und höher verwenden möchten, fragen Sie bitte in der App nach Laufzeitberechtigungen oder aktivieren Sie die Berechtigung ("Nearby devices/Bluetooth") manuell in den App-Einstellungen.

  • android.permission.READ_PHONE_STATE -- Das OpenTok-Android-SDK fordert diese Berechtigung bei API-Level 22 und darunter sowie bei API-Level 31 und darüber an.

  • android.permission.CAMERA -- Wenn Ihre Anwendung nicht den Standard-Video-Capturer verwendet und nicht auf die Kamera zugreift, können Sie diese Berechtigung entfernen.

  • android.permission.INTERNET -- Erforderlich.

  • android.permission.RECORD_AUDIO -- Wenn Ihre Anwendung nicht das Standard-Audiogerät verwendet und nicht auf das Mikrofon zugreift, können Sie diese Berechtigung entfernen.

  • android.permission.MODIFY_AUDIO_SETTINGS -- Wenn Ihre Anwendung nicht das Standard-Audiogerät verwendet und nicht auf das Mikrofon zugreift, können Sie diese Berechtigung entfernen.

  • android.permission.BLUETOOTH -- Das Standard-Audiogerät unterstützt Bluetooth-Audio. Wenn Ihre Anwendung nicht das Standard-Audiogerät und nicht Bluetooth verwendet, können Sie diese Berechtigung entfernen.

  • android.permission.BROADCAST_STICKY -- Wir haben festgestellt, dass diese Berechtigung vom OpenTok-Android-SDK nicht genutzt wird, und werden sie in einer kommenden Version entfernen.

  • android.permission.ACCESS_LOCAL_NETWORK -- Nicht erforderlich. Mit Android 17 (API 37) wurde diese Berechtigung eingeführt, um den Zugriff auf hochrangige APIs zur Erkennung lokaler Netzwerke zu regeln. Das Vonage Video Android SDK verwendet für die WebRTC-ICE-Verhandlung reine UDP/TCP-Sockets, die nicht dieser Berechtigung unterliegen. P2P-Verbindungen und ICE-Kandidaten im lokalen Netzwerk funktionieren unter Android 17 auch ohne diese Berechtigung einwandfrei.

Sie müssen diese nicht in Ihr App-Manifest aufnehmen. Das OpenTok Android SDK fügt sie automatisch hinzu. Ab API-Level 21 müssen Sie den Nutzer jedoch bei bestimmten Berechtigungen um Erlaubnis bitten.

Ihre Anwendung kann jede dieser nicht benötigten Berechtigungen entfernen. Siehe diese Stelle und diese Android-Dokumentation. Dadurch wird zum Beispiel die android.permission.CAMERA Erlaubnis:

<uses-permission android:name="android.permission.CAMERA" tools:node="remove"/>

ProGuard-Regeln

Die empfohlene ProGuard-Konfiguration ist:

-keeppackagenames
-keep class com.opentok.** { *; }
-keep class com.vonage.** { *; }

Bei Verwendung von Android Studio 3.4 oder dem Android Gradle-Plugin 3.4.0+ sind Komprimierung, Verschleierung und Optimierung standardmäßig automatisch aktiviert.

Es wird nicht empfohlen, das OpenTok-Android-SDK zu verkleinern und zu verschleiern.

Die obige Konfiguration sorgt dafür, dass der Quellcode des OpenTok-Android-SDK erhalten bleibt, ohne dass dadurch die Verkleinerung des restlichen Teils der App verhindert wird.

Behalten Sie die Paketnamen des OpenTok-Android-SDK mit dem Flag „-keeppackagenames“ bei, um Konflikte mit anderen Bibliotheken zu vermeiden.

Der Compiler führt standardmäßig automatisch eine Reihe von Optimierungen durch. Weitere Optimierungen werden nicht empfohlen, es ist jedoch möglich, zusätzliche Optimierungen zu aktivieren. Dies kann jedoch erfordern, dass zusätzliche ProGuard-Regeln hinzugefügt werden, um Probleme zur Laufzeit zu vermeiden. Fügen Sie dazu den folgenden Eintrag in die Datei „gradle.properties“ des Projekts ein:

android.enableR8.fullMode=true

Von einer Minifizierung des OpenTok-Android-SDK wird abgeraten. Das Komprimieren und Verschleiern des OpenTok-Android-SDK mit der oben genannten Optimierung führt zu Warnmeldungen. Diese sollten deaktiviert werden.

# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE

Siehe diese Android-Dokumentation um ein besseres Verständnis der allgemeinen ProGuard-Regeln und seiner Funktionen zu erlangen.

Code-Muster

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

Dokumentation und weitere Informationen

Siehe die OpenTok Android SDK – API-Referenz und die OpenTok-Entwicklerhandbücher.

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