Anpassung der Benutzeroberfläche – iOS

Mit den folgenden Einstellungen können Sie die Benutzeroberfläche von OpenTok-Videos an Ihre Bedürfnisse anpassen:

Hinzufügen eines Namens für einen veröffentlichten Stream

Um die Eigenschaft name des veröffentlichten Streams anzugeben, setzen Sie die name Eigenschaft des OTPublisherSettings-Objekts, das Sie beim Initialisieren eines Publishers verwenden:

OTPublisherSettings *_publisherSettings = [[OTPublisherSettings alloc] init];
_publisherSettings.name = @"Juan";
_publisher = [[OTPublisher alloc]
              initWithDelegate:self
              settings:_publisherSettings];

Die Klasse OTStream hat eine name Eigentum. Wenn Sie einen Stream abonnierenkönnen Sie diesen Namen in einem Element der Benutzeroberfläche anzeigen. (Dieser Name wird auch angezeigt, wenn das Video auf einer Webseite angezeigt wird, die die OpenTok.js-Bibliothek verwendet).

Verwenden Sie keine persönlichen Informationen im Feld "Name" des Herausgebers — Der Name des Herausgebers kann anderen Teilnehmern der Sitzung angezeigt werden und möglicherweise auch im Inspector-Tool sowie in den internen Protokollen von Vonage erscheinen. Verwenden Sie daher niemals unverschlüsselte sensible oder personenbezogene Daten im Namen des Herausgebers. Siehe bewährte Verfahren für die Sicherheit.

Hinzufügen einer Stummschalttaste für einen Herausgeber

Es gibt kein Standard-Benutzeroberflächenelement zum Stummschalten des Mikrofons des Herausgebers. Sie können jedoch ein Element, z. B. eine Schaltfläche, hinzufügen, das die publishAudio Eigenschaft des OTPublisher-Objekts, wenn der Benutzer darauf klickt. Setzen Sie die publishAudio Eigenschaft zu NO um den Herausgeber stumm zu schalten:

publisher.publishAudio = NO;

Setzen Sie die publishAudio Eigenschaft zu YES um Audio zu veröffentlichen.

publisher.publishAudio = YES;

Ein Beispiel finden Sie im Beispiel „Project 4: Overlay Graphics“ im Verzeichnis „samples“ des OpenTok iOS SDK (oder unter der Adresse opentok-ios-sdk-Beispiele Repo auf GitHub).

Hinzufügen einer Stummschalttaste für einen Teilnehmer

Es gibt kein Standard-Benutzeroberflächenelement zum Stummschalten des Tons des Teilnehmers. Sie können jedoch ein Element, z. B. eine Schaltfläche, hinzufügen, das die subscribeToAudio des OTSubscriber-Objekts, wenn der Benutzer es anklickt. Setzen Sie die subscribeToAudio Eigenschaft zu NO zum Stummschalten des Teilnehmers

subscriber.subscribeToAudio = NO;

Setzen Sie die subscribeToAudio Eigenschaft zu YES um Audio zu abonnieren (wenn es einen Audio-Stream gibt):

subscriber.subscribeToAudio = YES;

Ein Beispiel finden Sie im Beispiel „Project 4: Overlay Graphics“ im Verzeichnis „samples“ des OpenTok iOS SDK (oder unter der Adresse opentok-ios-sdk-Beispiele Repo auf GitHub).

Hinzufügen einer Schaltfläche zum Umschalten der Kamera des Herausgebers

Es gibt kein Standard-Benutzeroberflächenelement, um die vom Herausgeber verwendete Kamera umzuschalten. Sie können jedoch ein Element, z. B. eine Schaltfläche, hinzufügen, das die cameraPosition Eigenschaft des OTPublisher-Objekts. Setzen Sie die Eigenschaft auf einen Wert, der in der Aufzählung AVCaptureDevicePosition definiert ist. Der folgende Code legt beispielsweise fest, dass der Herausgeber die Rückseitenkamera verwendet:

publisher.cameraPosition = AVCaptureDevicePositionBack;

Beachten Sie, dass die cameraPosition Eigenschaft ist in der OTPublisherKit-Klasse nicht verfügbar. Wenn Sie die OTPublisherKit-Klasse verwenden, um einen benutzerdefinierten Video-Capturer implementierenkönnen Sie die im benutzerdefinierten Code für die Videoaufzeichnung verwendete Kamera festlegen.

Ein Beispiel finden Sie im Beispiel „Project 4: Overlay Graphics“ im Verzeichnis „samples“ des OpenTok iOS SDK (oder unter der Adresse opentok-ios-sdk-Beispiele Repo auf GitHub).

Anpassen der Benutzeroberfläche, wenn Video aktiviert oder deaktiviert ist

Wenn das Video eines Abonnenten deaktiviert ist, wird die [OTSubscriberKitDelegate subscriberVideoDisabled:reason:] Nachricht gesendet wird. Wenn dies der Fall ist, können Sie ein Element der Benutzeroberfläche (z. B. ein Symbol) hinzufügen, um anzuzeigen, dass das Video deaktiviert wurde:

- (void)subscriberVideoDisabled:(OTSubscriberKit*)subscriber
                         reason:(OTSubscriberVideoEventReason)reason
{
    // Display the video disabled indicator
}

Wenn das Video eines Abonnenten wieder aktiviert wird, wird die [OTSubscriberKitDelegate subscriberVideoEnabled:reason:] Nachricht gesendet wird. Wenn dies geschieht, können Sie ein Element der Benutzeroberfläche (z. B. ein Symbol) entfernen, das anzeigt, dass das Video wieder aktiviert ist:

- (void)subscriberVideoEnabled:(OTSubscriberKit*)subscriber
                        reason:(OTSubscriberVideoEventReason)reason
{
    // Remove the video disabled indicator
}

In Sitzungen, die den OpenTok Media Router (Sitzungen, bei denen der Medienmodus auf geroutet eingestellt ist), können auch die folgenden Nachrichten gesendet werden:

Sie können auch eine Benachrichtigung der Benutzeroberfläche (z. B. ein Symbol) anzeigen und entfernen lassen, wenn diese Nachrichten gesendet werden.

Ein Beispiel finden Sie im Beispiel „Project 4: Overlay Graphics“ im Verzeichnis „samples“ des OpenTok iOS SDK (oder unter der Adresse opentok-ios-sdk-Beispiele Repo auf GitHub).

Beachten Sie, dass Sie beim Veröffentlichen eines Streams den Audio-Fallback für Publisher und Subscriber aktivieren oder deaktivieren. Die Audio-Fallback-Funktion deaktiviert die Videoübertragung (bei Publishern und Subscribern), wenn die Netzwerk- oder CPU-Bedingungen die Videoübertragung nicht zulassen. Siehe Audio-Fallback (iOS).

Wenn Sie das Audio-Fallback des Anbieters aktivieren, wird das PublisherKitDelegate Objekt sendet die folgenden Nachrichten zu Ereignissen, die sich auf den Audio-Fallback des Herausgebers beziehen:

  • [OTPublisherKitDelegate publisherVideoDisabled:reason:]
  • [OTPublisherKitDelegate publisherVideoEnabled:reason:]
  • [OTPublisherKitDelegate publisherVideoDisableWarning:]
  • [OTPublisherKitDelegate publisherVideoDisableWarningLifted:]

Als Reaktion auf diese Ereignisse können Sie UI-Anzeigen einblenden.

Anzeige eines Indikatorelements, wenn ein Lauf archiviert wird

Wenn ein Archiv einer Sitzung mit der Aufzeichnung beginnt (oder wenn Sie eine Verbindung zu einer Sitzung herstellen, die gerade aufgezeichnet wird), wird die [OTSessionDelegate session:archiveStartedWithId:name:] Nachricht gesendet wird. Wenn die Aufzeichnung endet, wird die [OTSessionDelegate session:archiveStoppedWithId:] Nachricht gesendet wird. Sie können ein Element der Benutzeroberfläche hinzufügen, z. B. ein Symbol, das in einer OTPublisher-Ansicht angezeigt wird, um anzuzeigen, dass ein Video aufgezeichnet wird:

- (void)     session:(OTSession*)session
archiveStartedWithId:(NSString*)archiveId
                name:(NSString*)name
{
    // Display the archive indicator
}

- (void)     session:(OTSession*)session
archiveStoppedWithId:(NSString*)archiveId
{
    // Hide the archive indicator
}

Ein Beispiel finden Sie im Beispiel „Project 5: Multi-Party-Call“ im Verzeichnis „samples“ des OpenTok iOS SDK (oder unter der Adresse opentok-ios-sdk-Beispiele Repo auf GitHub).

Schnappschussbild eines Videos erhalten

Der folgende Code erfasst ein statisches Bild des Publisher-Videos und zeigt es an, fügt es der Hauptansicht hinzu und legt ein UIImage-Objekt für das Bild fest:

UIView* screenCapture = [publisher.view
    snapshotViewAfterScreenUpdates:YES];
[self.view addSubview:screenCapture];

UIGraphicsBeginImageContextWithOptions(publisher.view.bounds.size,
    NO, [UIScreen mainScreen].scale);
[view drawViewHierarchyInRect:publisher.view.bounds
    afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Der folgende Code erfasst ein statisches Bild des Abonnentenvideos und zeigt es an, fügt es der Hauptansicht hinzu und legt ein UIImage-Objekt für das Bild fest:

UIView* screenCapture = [subscriber.view
    snapshotViewAfterScreenUpdates:YES];
[self.view addSubview:screenCapture];

UIGraphicsBeginImageContextWithOptions(subscriber.view.bounds.size,
    NO, [UIScreen mainScreen].scale);
[view drawViewHierarchyInRect:subscriber.view.bounds
    afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Ein Beispiel für die Erstellung eines hochauflösenden Bildes eines Verlags finden Sie im Beispiel „Live Photo Capture“ im OpenTok-iOS-Beispiel-Repository. Dieses Beispiel befindet sich ebenfalls im Verzeichnis „samples“ des OpenTok iOS SDK.

Anpassung der Benutzeroberfläche auf der Grundlage von Audiopegeln

Die [OTPublisherKitAudioLevelDelegate publisher:audioLevelUpdated:] und [OTSubscriberKitAudioLevelDelegate subscriber:audioLevelUpdated:] Nachrichten werden in einem regelmäßigen Intervall mit dem Audiopegel des Teilnehmers und des Herausgebers gesendet. Sie können die audioLevel Wert, um die Anzeige in einer Audiopegelanzeige zu aktualisieren.

Ein Beispiel finden Sie im Beispiel „Project 6: Audio Levels“ im Verzeichnis „samples“ des OpenTok iOS SDK (oder unter der Adresse opentok-ios-sdk-Beispiele Repo auf GitHub).

Anmerkung: Der Audiopegel eines Publishers ist erst verfügbar, wenn dessen Stream in einer Sitzung veröffentlicht wurde. Um eine Vorschau des Audios zu erhalten, bevor der Publisher mit dem Streaming in die Sitzung beginnt, verwenden Sie einen benutzerdefinierter Audiotreiber.

Aus Gründen des Datenschutzes wird die Audioerfassung standardmäßig beendet und das Mikrofon freigegeben, wenn alle Publisher stummgeschaltet sind. Das bedeutet, dass es keine weiteren Aktualisierungen des Audiopegels gibt, bis eine Verlagsinstanz Audio wieder aktiviert. Ab Version 2.31.0 ist der Publisher mit einer Eigenschaft ausgestattet, die es erlaubt, die Audioerfassung fortzusetzen, während er stummgeschaltet ist.

Bei der Instanziierung einer neuen Verlagsinstanz kann der Entwickler dieses Verhalten aktivieren:


	OTPublisherKitSettings* settings = [[OTPublisherKitSettings alloc] init];
    settings.allowAudioCaptureWhileMuted = true;
	_publisher = [[OTPublisherKit alloc] initWithDelegate:self settings:settings];

Hinweis: Wenn Sie dieses Verhalten aktivieren, wird das Mikrofon auch dann verwendet, wenn der Herausgeber stummgeschaltet ist.

Verwendung eines benutzerdefinierten Video-Renderers

Die Klassen „OTPublisher“ und „OTSubscriber“ stellen eine Standard-„UIView“-Instanz bereit, die das Video des Publishers bzw. des Subscribers rendert. Sie können die benutzerdefinierte Video-Stream-API verwenden, um mithilfe der Klassen „OTPublisherKit“, „OTSubscriberKit“ und „OTVideoRender“ einen benutzerdefinierten Video-Renderer zu definieren. Ein Beispiel finden Sie im Beispiel „Projekt 2: Let’s Build OTPublisher“ im Verzeichnis „samples“ des OpenTok iOS SDK (oder unter der Adresse opentok-ios-sdk-Beispiele Repo auf GitHub).

Sie können einen Verlag auch so einrichten, dass er eine benutzerdefinierter Video-Capturer.