Anleitung zur Archivierung (Android)

Übersicht

Mit der OpenTok-Archivierungs-API können Sie Audio- und Videostreams einer Sitzung als MP4-Dateien aufzeichnen. Das Starten und Beenden der Archivaufzeichnungen erfolgt über serverseitigen Code.

Einrichtung des Servers

Um OpenTok-Sitzungen zu archivieren (d. h. Aufzeichnungen von Sitzungen zu speichern), benötigen Sie ein Server Einrichtung. Es gibt viele Möglichkeiten, die Archivierung mit einem Server zu realisieren, aber für dieses Tutorial werden wir schnell einen einfachen PHP-Server in Betrieb nehmen.

Um den Server zu starten, klicken Sie einfach auf die Heroku-Schaltfläche unten. Sie werden dann auf die Heroku-Website weitergeleitet und aufgefordert, Ihren OpenTok-API-Schlüssel und Ihr API-Geheimnis einzugeben – diese Werte finden Sie auf Ihrer Projektseite in Ihrem Video API-Konto. Falls Sie noch keinen Heroku-Account haben, müssen Sie sich registrieren (das ist kostenlos).

Deploy

Möchtest du dir den Code ansehen? Über die Schaltfläche oben wird der Servercode aus der Lernen mit OpenTok PHP GitHub-Repo. Besuchen Sie das Repo, um den Code sowie die zusätzliche Dokumentation einzusehen – Sie können das Repo sogar forken und vor der Bereitstellung Änderungen vornehmen.

Einrichten Ihres Projekts

Um dieses Tutorial nachzuvollziehen, klonen Sie das Repository von OpenTok Android-Beispiel-App Repo auf GitHub:

git clone https://github.com/Vonage/vonage-video-android-sdk-samples.git

Öffnen Sie anschließend die Archivierung – Java Projekt in Android Studio.

Anmerkung: In diesem Tutorial wird die Java-Version der Android-Beispiel-App behandelt. Eine Kotlin-Version mit Dokumentation finden Sie unter Android Beispielanwendung Repo.

Das ist wichtig: Sie können nur Sitzungen archivieren, die die OpenTok Media Router (Sitzungen, bei denen der Medienmodus auf „geroutet“ eingestellt ist). Die Standardeinstellung Lernen mit OpenTok PHP Der in dieser Tutorial-App verwendete Code nutzt geroutete Sitzungen.

Den Code erkunden

Anmerkung: Die Android-Beispiel-App zur Archivierung baut auf der Basic-Video-Chat app.

In der ServerConfig Datei, dort legst du die CHAT_SERVER_URL Eigenschaft zur Basis-URL:

public static final String CHAT_SERVER_URL = "https://YOURAPPNAME.herokuapp.com";

Die Endpunkte des Webdienstes, die die App aufruft, um die Archivaufzeichnung zu starten, die Aufzeichnung zu beenden und das aufgezeichnete Video wiederzugeben, sind in der APIService Schnittstelle:

public interface APIService {
    @GET("session")
    Call getSession();

    @POST("archive/start")
    @Headers("Content-Type: application/json")
    Call startArchive(@Body StartArchiveRequest startArchiveRequest);

    @POST("archive/{archiveId}/stop")
    Call stopArchive(@Path("archiveId") String archiveId);
}

Wenn der Benutzer die start archive, stop archiveund play archive Menüpunkte aus der Aktionsleiste oder dem Optionsmenü: Die App ruft die startArchive() und stopArchive()und playArchive() Methoden. Diese Methoden rufen intern die oben definierten Webdienste auf:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle app bar item clicks here. The app bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    switch (item.getItemId()) {
        case R.id.action_settings:
            return true;
        case R.id.action_start_archive:
            startArchive();
            return true;
        case R.id.action_stop_archive:
            stopArchive();
            return true;
        case R.id.action_play_archive:
            playArchive();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Die MainActivity Die Klasse enthält eine archiveListener Eigenschaft, die die Session.ArchiveListener Schnittstelle, die Callbacks zur Behandlung von archivbezogenen Ereignissen bereitstellt: onArchiveStarted und onArchiveStopped.

Wenn der Benutzer auf die Schaltfläche start archive Schaltfläche, ruft die App archive/start Endpunkt über den startArchive() Methode. Wenn die Archivaufzeichnung beginnt, wird die onArchiveStarted() Der Callback wird ausgelöst:

@Override
    public void onArchiveStarted(Session session, String archiveId, String archiveName) {
        currentArchiveId = archiveId;
        setStopArchiveEnabled(true);
        archivingIndicatorView.setVisibility(View.VISIBLE);
    }

Die onArchiveStarted() Die Methode speichert die Archiv-ID in einem currentArchiveId Eigenschaft. Die Methode ruft außerdem setStopArchiveEnabled(true), was dazu führt, dass die stop recording anzuzeigender Menüpunkt. Und das führt dazu, dass archivingIndicatorView die angezeigt werden soll (ein roter Punkt auf dem Video).

Wenn der Benutzer auf die Schaltfläche stop archive Schaltfläche, ruft die App archive/stop Endpunkt über den stopArchive() Methode. Wenn die Archivaufzeichnung beendet wird, wird die onArchiveStopped() Der Callback wird ausgelöst:

@Override
public void onArchiveStopped(Session session, String archiveId) {
    playableArchiveId = archiveId;
    currentArchiveId = null;
    setPlayArchiveEnabled(true);
    setStartArchiveEnabled(true);
    archivingIndicatorView.setVisibility(View.INVISIBLE);
}

Die onArchiveStopped() Die Methode speichert die Archiv-ID in einem playableArchiveId Eigenschaft und Mengen currentArchiveId zu null. Die Methode ruft außerdem setPlayArchiveEnabled(false), wodurch der Menüpunkt „Archiv abspielen“ deaktiviert wird, und es ruft setStartArchiveEnabled(true) um den Menüpunkt „Archiv starten“ zu aktivieren. Und das führt dazu, dass die archivingIndicatorView ausgeblendet werden.

Wenn der Benutzer auf die Schaltfläche play archive Schaltfläche, die playArchive() Die Methode öffnet eine Webseite (im Webbrowser des Geräts), auf der die Archivaufzeichnung angezeigt wird.

Anmerkungen:

  • In den meisten Applications würde nicht jedem Endbenutzer die Kontrolle über die Archivaufzeichnung gewährt werden.

  • Sie können automatisch archivierte Sitzungen haben, die immer dann aufgezeichnet werden, wenn ein Client mit der Veröffentlichung eines Streams beginnt.

  • Sie sollten ein Amazon S3- oder Microsoft Azure-Ziel für die Speicherung Ihrer Archivaufzeichnungen einrichten.

Weitere Informationen zur Archivierung finden Sie in der OpenTok-Entwicklerhandbuch zur Archivierung.

Herzlichen Glückwunsch! Du hast das Archivierungs-Tutorial für Android abgeschlossen.
Du kannst den Code, den du hier entwickelt hast, weiter ausprobieren und anpassen oder dir die Nächste Schritte unten.

Nächste Schritte

Wenn Sie hier fertig sind, können Sie Ihre OpenTok-Application mit diesen hilfreichen Ressourcen weiter ausbauen und verbessern: