Anleitung zur Archivierung (Web)

Übersicht

Mit der OpenTok-Archivierungs-API können Sie die Audio- und Videostreams einer Sitzung als MP4-Dateien aufzeichnen.

Einrichtung des Servers

Um OpenTok-Sitzungen zu archivieren, benötigen Sie eine 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 Beispiel-Webanwendungen Repo auf GitHub:

git clone https://github.com/Vonage-Community/video-api-web-samples.git

Öffnen Sie anschließend die Archivierung Ordner in Ihrem Code-Editor, um die Schritte nachzuvollziehen.

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

Zum Starten und Beenden von Archivaufzeichnungen verwenden Sie serverseitigen Code. In der Datei „config.js“ legen Sie die SAMPLE_SERVER_BASE_URL Variable an die Basis-URL des Webdienstes, den die App aufruft, um die Archivaufzeichnung zu starten, die Aufzeichnung zu beenden und das aufgezeichnete Video wiederzugeben. Stellen Sie sicher, dass am Ende kein / am Ende der Domain.

Die Archivierungsanwendung nutzt denselben Code, der im Ordner „Basic Video Chat“ verfügbar ist, um eine OpenTok-Sitzung zu initialisieren, eine Verbindung zur Sitzung herzustellen, einen Stream zu veröffentlichen und den Stream in der Sitzung zu abonnieren. Falls Sie sich noch nicht mit dem Code in diesem Zweig vertraut gemacht haben, sollten Sie sich den Einführung in den Client für das Web, bevor Sie fortfahren.

Um die Aufzeichnung des Videostreams zu starten, klickt der Benutzer auf die Schaltfläche „Aufzeichnung starten“, wodurch die Methode `startArchive()` in der Datei `app.js` aufgerufen wird. Diese Methode sendet wiederum eine XHR- (oder Ajax-)Anfrage an den Server. Die Sitzungs-ID der Sitzung, die aufgezeichnet werden soll, wird im JSON-Format an den Server übermittelt. Sobald die Methode „startArchive()“ aufgerufen wird, wird die Schaltfläche „Aufzeichnung starten“ ausgeblendet und die Schaltfläche „Aufzeichnung beenden“ angezeigt.


function startArchive() {
  $.ajax({
    url: SAMPLE_SERVER_BASE_URL + '/archive/start',
    type: "POST",
    contentType: "application/json", // send as JSON
    data: JSON.stringify({"sessionId": sessionId}),

    complete: function() {
      //called when complete
      console.log('startArchive() complete');
    },

    success: function() {
      //called when successful
      console.log('successfully called startArchive()');
    },

    error: function() {
      //called when there is an error
      console.log('error calling startArchive()');
    },
  });

  $('#start').hide();
  $('#stop').show();
}

Um die Aufzeichnung zu beenden, klickt der Benutzer auf die Schaltfläche „Aufzeichnung beenden“, wodurch die Methode `stopArchive()` aufgerufen wird. Diese Methode ähnelt der Methode `startArchive()` insofern, als sie eine Ajax-Anfrage an den Server sendet, um die Aufzeichnung zu beenden. Der einzige Unterschied besteht darin, dass diese Methode anstelle der „sessionId“ die Archiv-ID des zu beendenden Archivs als URL-Parameter übergibt. Die Schaltfläche „Aufzeichnung beenden“ wird ausgeblendet und die Schaltfläche „Archiv anzeigen“ wird aktiviert.

function stopArchive() {
  $.post(SAMPLE_SERVER_BASE_URL + '/archive/' + archiveID + '/stop');
  $('#stop').hide();
  $('#view').prop('disabled', false);
  $('#stop').show();
}

Um das soeben aufgezeichnete Archiv herunterzuladen, klickt der Benutzer auf die Schaltfläche „Archiv anzeigen“, wodurch die Methode viewArchive() aufgerufen wird. Diese Methode ähnelt den Methoden startArchive() und stopArchive() insofern, als sie eine Ajax-Anfrage an den Server sendet. Der Servercode enthält die Logik, um zu prüfen, ob das Archiv zum Herunterladen verfügbar ist oder nicht. Ist es verfügbar, wird die Anwendung auf die Archivseite weitergeleitet. Ist dies nicht der Fall, wird eine neue Seite geladen, die kontinuierlich prüft, ob das Archiv zum Herunterladen verfügbar ist, und es lädt, sobald es verfügbar ist.

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! Sie haben das Archivierungs-Tutorial für das Web 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: