Anleitung zur iOS-Archivierung (Objective-C)
Ü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, 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).
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
So führen Sie diese Anleitung durch:
-
OpenTok klonen iOS-Beispiel-Apps Repo auf GitHub:
Kopierengit clone https://github.com/opentok/opentok-ios-sdk-samples.git -
Im Terminal,
cdin das Unterverzeichnis „Archiving“ des Projekts und führen Sie anschließend folgenden Befehl aus:pod install. -
Öffnen Sie Ihr Projekt in Xcode, indem Sie auf die neue Datei „Archiving.xcworkspace“ im Verzeichnis „Archiving“ doppelklicken.
-
Öffnen Sie die Datei „Config.h“ und legen Sie die
SAMPLE_SERVER_BASE_URLZeichenkette an die Basis-URL des Servers, der die Lernen mit OpenTok PHP Projekt. Dieser Server stellt der iOS-Beispiel-App OpenTok-Sitzungs-IDs und -Token zur Verfügung. Weitere Informationen finden Sie unter Einrichtung des Servers.
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: Das Archivierungsbeispiel baut auf dem Einfacher Video-Chat für Objective-C, aber es gibt auch eine Anleitung zum „Basic-Video-Chat“ in Schnell.
Das Archivierungsbeispiel bietet folgende Funktionen:
-
Tippen Sie auf das Aufnahme starten Taste.
Dadurch wird die Aufzeichnung der Audio- und Videostreams auf dem OpenTok-Medienserver gestartet.
-
Tippen Sie auf das Aufnahme beenden Schaltfläche, um die Aufnahme zu beenden.
-
Tippen Sie auf das Aufzeichnung ansehen Schaltfläche, um die Aufzeichnung im Webbrowser anzusehen.
In der Datei „Config.h“ setzen Sie die folgende Konstante auf die Basis-URL des Webdienstes, den die App aufruft, um die Archivaufzeichnung zu starten, die Aufzeichnung zu beenden und das aufgezeichnete Video wiederzugeben:
#define SAMPLE_SERVER_BASE_URL
Wenn Sie diese Zeichenfolge nicht festlegen, sind die Schaltflächen „Aufnahme starten“, „Aufnahme beenden“ und „Archiv anzeigen“ in der App nicht verfügbar.
Wenn der Benutzer auf die Schaltflächen „Aufnahme starten“ und „Aufnahme beenden“ klickt, ruft die App die [self startArchive:] und [self stopArchive:] Methoden. Diese rufen Webdienste auf, die wiederum serverseitigen Code aufrufen, um Archivaufzeichnungen zu starten und zu beenden.
Wenn die Archivaufzeichnung beginnt, wird die Implementierung der [OTSessionDelegate session:archiveStartedWithId:name:] Methode aufgerufen wird:
- (void) session:(OTSession*)session
archiveStartedWithId:(NSString *)archiveId
name:(NSString *)name
{
NSLog(@"session archiving started with id:%@ name:%@", archiveId, name);
_archiveId = archiveId;
_archiveIndicatorImg.hidden = NO;
if (SAMPLE_SERVER_BASE_URL) {
_archiveControlBtn.hidden = NO;
[_archiveControlBtn setTitle: @"Stop recording" forState:UIControlStateNormal];
_archiveControlBtn.hidden = NO;
[_archiveControlBtn removeTarget:self
action:NULL
forControlEvents:UIControlEventTouchUpInside];
[_archiveControlBtn addTarget:self
action:@selector(stopArchive)
forControlEvents:UIControlEventTouchUpInside];
}
}
Dies führt dazu, dass die _archivingIndicatorImg Bild (im Haupt-Storyboard definiert), das angezeigt werden soll. Die Methode speichert die Archiv-ID (die das Archiv identifiziert) in einem archiveId Eigenschaft. Die Methode ändert außerdem den Text der Schaltfläche zur Archivierungssteuerung in „Aufzeichnung beenden“.
Wenn der Benutzer auf die Schaltfläche „Aufzeichnung beenden“ klickt, übermittelt die App die Archiv-ID an den Webdienst, der die Archivaufzeichnung beendet.
Wenn die Archivaufzeichnung beendet wird, erfolgt die Umsetzung der [OTSessionDelegate session:archiveStoppedWithId:] Methode aufgerufen wird:
- (void) session:(OTSession*)session
archiveStoppedWithId:(NSString *)archiveId
{
NSLog(@"session archiving stopped with id:%@", archiveId);
_archiveIndicatorImg.hidden = YES;
if (SAMPLE_SERVER_BASE_URL) {
_archiveControlBtn.hidden = NO;
[_archiveControlBtn setTitle: @"View recording" forState:UIControlStateNormal];
[_archiveControlBtn removeTarget:self
action:NULL
forControlEvents:UIControlEventTouchUpInside];
[_archiveControlBtn addTarget:self
action:@selector(loadArchivePlaybackInBrowser)
forControlEvents:UIControlEventTouchUpInside];
}
}
Dies führt dazu, dass die _archivingIndicatorImg Bild (im Haupt-Storyboard definiert), das angezeigt werden soll. Außerdem wird der Text der Archivierungsschaltfläche in „Archiv anzeigen“ geändert. Wenn der Benutzer auf diese Schaltfläche klickt, wird die [self loadArchivePlaybackInBrowser:] Die Methode öffnet eine Webseite (in Safari), 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! Sie haben das Archivierungs-Tutorial für iOS 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:
- Grundlagen der Video API – Falls Sie es noch nicht getan haben, nehmen Sie sich ein paar Minuten Zeit, um genau zu erfahren, wie OpenTok funktioniert.
- Code-Beispiele – eine Sammlung von Beispiel-Apps, die verschiedene OpenTok-Funktionen und Anwendungsfälle veranschaulichen
- Entwicklerhandbücher – ausführliche Dokumentation zu allen Funktionen und Merkmalen von OpenTok
- Weitere Tutorials – Anleitungen zur Implementierung weiterer OpenTok-Funktionen und Anwendungsfälle
- iOS-SDK-Referenz – Entdecken Sie die spezifischen Methoden und Ereignisse im Zusammenhang mit dem OpenTok iOS-SDK