Aktivieren von Audio in Ihrer Applikation
In dieser Anleitung werden wir das Hinzufügen von Audio-Ereignissen zu der Konversation behandeln, die wir in der Gespräch mit Veranstaltungen Leitfaden. Wir werden uns mit dem Senden und Empfangen von Medienereignissen zu und von der Konversation befassen.
Concepts
In diesem Leitfaden werden Sie mit den folgenden Concepts vertraut gemacht:
- Audio-Stream - Der Stream, den das SDK Ihnen in Ihrem Browser zur Verfügung stellt, um Audio zu hören und zu senden
- Audio Bein - Ein serverseitiger API-Begriff. Legs sind ein Teil einer Konversation. Wenn Audio in einer Konversation aktiviert ist, wird ein Leg erstellt
- Medienereignis - a
member:mediaEreignis, das bei einer Konversation ausgelöst wird, wenn sich der Medienstatus eines Mitglieds ändert
Bevor Sie beginnen
- Durchlaufen Sie die vorherige Anleitung
Aktualisieren Sie die JavaScript-Anwendung
Wir werden die Anwendung verwenden, die wir für der dritte Leitfaden für den Einstieg. Alle grundlegenden Einstellungen wurden in den vorangegangenen Anleitungen vorgenommen und sollten nun vorhanden sein. Wir können uns nun auf die Aktualisierung der clientseitigen Anwendung konzentrieren.
Audio UI hinzufügen
Zunächst fügen wir die Benutzeroberfläche zum Aktivieren und Deaktivieren von Audio hinzu, sowie eine <audio> Element, mit dem wir den Audiostream der Konversation abspielen werden. Fügen wir die Benutzeroberfläche am oberen Rand des Nachrichtenbereichs hinzu.
Und fügen Sie die Schaltflächen und <audio> Element im Klassenkonstruktor
constructor() {
...
this.audio = document.getElementById('audio')
this.enableButton = document.getElementById('enable')
this.disableButton = document.getElementById('disable')
}
Audio-Handler aktivieren hinzufügen
Wir aktualisieren dann die setupUserEvents Methode zum Auslösen conversation.media.enable() wenn der Benutzer auf die Schaltfläche Enable Audio Taste. Die Website conversation.media.enable() gibt ein Versprechen mit einem Stream-Objekt zurück, das wir als Quelle für unsere <audio> Element. Dann fügen wir einen Hörer für das Element <audio> Element, um die Wiedergabe zu starten, sobald die Metadaten geladen wurden.
setupUserEvents() {
...
this.enableButton.addEventListener('click', () => {
this.conversation.media
.enable()
.then(stream => {
// Older browsers may not have srcObject
if ("srcObject" in this.audio) {
this.audio.srcObject = stream;
} else {
// Avoid using this in new browsers, as it is going away.
this.audio.src = window.URL.createObjectURL(stream);
}
this.audio.onloadedmetadata = () => {
this.audio.play();
}
this.eventLogger('member:media')()
})
.catch(this.errorLogger)
})
}
Beachten Sie, dass durch das Aktivieren von Audio in einer Konversation eine Audioverbindung für ein Mitglied der Konversation hergestellt wird. Der Ton wird nur an andere Gesprächsteilnehmer gestreamt, die ebenfalls Audio aktiviert haben.
Audio-Handler zum Deaktivieren hinzufügen
Als Nächstes fügen wir die Möglichkeit hinzu, dass ein Benutzer den Audiostream auch deaktivieren kann. Zu diesem Zweck aktualisieren wir die setupUserEvents Methode zum Auslösen conversation.media.disable() wenn der Benutzer auf die Schaltfläche Disable Audio Taste.
setupUserEvents() {
...
this.disableButton.addEventListener('click', () => {
this.conversation.media
.disable()
.then(this.eventLogger('member:media'))
.catch(this.errorLogger)
})
}
Mitglied hinzufügen:media listener
Mit diesen ersten Teilen senden wir member:media Ereignisse in die Konversation ein. Jetzt werden wir auch für sie einen Listener registrieren, der die messageFeed. Um dies zu tun, fügen wir einen Hörer für member:media Ereignisse am Ende der setupConversationEvents Methode
setupConversationEvents(conversation) {
...
conversation.on("member:media", (member, event) => {
console.log(`*** Member changed media state`, member, event)
const text = `${member.user.name} <b>${event.body.audio ? 'enabled' : 'disabled'} audio in the conversation</b><br>`
this.messageFeed.innerHTML = text + this.messageFeed.innerHTML
})
}
Wenn wir wollen, dass der Gesprächsverlauf aktualisiert wird, müssen wir einen Fall für member:media im showConversationHistory Schalter:
showConversationHistory(conversation) {
...
switch (value.type) {
...
case 'member:media':
eventsHistory = `${conversation.members.get(value.from).user.name} @ ${date}: <b>${value.body.audio ? "enabled" : "disabled"} audio</b><br>` + eventsHistory
break;
...
}
}
Öffnen Sie das Gespräch in zwei Browserfenstern
Jetzt laufen index.html in zwei nebeneinander liegenden Browserfenstern, wobei Sie sich mit dem Benutzernamen jamie in einem und mit alice im anderen. Aktivieren Sie Audio auf beiden Geräten und beginnen Sie zu sprechen. In der Browserkonsole werden auch Ereignisse protokolliert.
Das war's! Ihre Seite sollte jetzt ungefähr so aussehen diese.
Referenz
Aktivieren von Audio in Ihrer Applikation
In dieser Anleitung werden wir das Hinzufügen von Audio-Ereignissen zu der Konversation behandeln, die wir in der Anleitung zum Erstellen einer Chat-App Leitfaden. Wir werden uns mit dem Senden und Empfangen von Medienereignissen zu und von der Konversation befassen.
Concepts
In diesem Leitfaden werden Sie mit den folgenden Concepts vertraut gemacht:
- Audio Bein - Ein serverseitiger API-Begriff. Legs sind ein Teil einer Konversation. Wenn Audio in einer Konversation aktiviert ist, wird ein Leg erstellt
- Medienereignis - a
NexmoMediaEventEreignis, das bei einer Konversation ausgelöst wird, wenn sich der Medienstatus eines Mitglieds ändert
Bevor Sie beginnen
Durchlaufen Sie die Anleitung zum Erstellen einer Chat-App. Sie werden auf diesem Projekt aufbauen.
Audiorechte hinzufügen
Da bei der Aktivierung von Audio das Mikrofon des Geräts verwendet wird, müssen Sie den Benutzer um Erlaubnis bitten.
Neuen Eintrag in der app/src/AndroidManifest.xml Datei (unter der letzten <uses-permission Tag):
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Antrag auf Genehmigung beim Start der Anwendung
Berechtigungen innerhalb der onCreate Methode der MainActivity Klasse:
val callsPermissions = arrayOf(Manifest.permission.RECORD_AUDIO)
ActivityCompat.requestPermissions(this, callsPermissions, 123)
Audio UI hinzufügen
Sie müssen nun zwei Schaltflächen hinzufügen, mit denen der Benutzer den Ton aktivieren und deaktivieren kann. Öffnen Sie die app/src/main/res/layout/activity_main.xml Datei und fügen Sie zwei neue Schaltflächen (enableMediaButton und disableMediaButton) rechts unten logoutButton Taste:
<!--...-->
<Button
android:id="@+id/enableMediaButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/conversationEventsScrollView"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Enable Audio" />
<Button
android:id="@+id/disableMediaButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/conversationEventsScrollView"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"
android:text="Disable Audio"
tools:visibility="visible"/>
<!--...-->
private lateinit var enableMediaButton: Button
private lateinit var disableMediaButton: Button
den Verweis auf die Schaltflächen abrufen, indem Sie findViewById Anrufe im onCreate Methode:
enableMediaButton = view.findViewById(R.id.enableMediaButton)
disableMediaButton = view.findViewById(R.id.disableMediaButton)
Fügen Sie Klick-Ereignis-Listener für die Schaltflächen hinzu, innerhalb der onCreate Methode:
enableMediaButton.setOnClickListener {
conversation?.enableMedia()
enableMediaButton.visibility = View.GONE
disableMediaButton.visibility = View.VISIBLE
}
disableMediaButton.setOnClickListener {
conversation?.disableMedia()
enableMediaButton.visibility = View.VISIBLE
disableMediaButton.visibility = View.GONE
}
HINWEIS: Wenn Sie Audio in einer Konversation aktivieren, wird ein Audioabschnitt für ein Mitglied der Konversation eingerichtet. Der Ton wird nur an andere Teilnehmer der Konversation gestreamt, die ebenfalls Audio aktiviert haben.
Audioereignisse anzeigen
Wenn Sie Medien aktivieren, NexmoMediaEvent Ereignisse werden an die Konversation gesendet. Um diese Ereignisse anzuzeigen, müssen Sie eine NexmoMediaEventListener. Hinzufügen der NexmoMediaEventListener unter addMessageEventListener innerhalb getConversation Methode:
conversation.addMediaEventListener(new NexmoMediaEventListener() {
@Override
public void onMediaEnabled(@NonNull NexmoMediaEvent nexmoMediaEvent) {
conversationEvents.add(nexmoMediaEvent);
updateConversationView();
}
@Override
public void onMediaDisabled(@NonNull NexmoMediaEvent nexmoMediaEvent) {
conversationEvents.add(nexmoMediaEvent);
updateConversationView();
}
});
Hinzufügen der Unterstützung des NexmoMediaEvent innerhalb updateConversationView Methode durch Hinzufügen einer neuen Verzweigung zu when Erklärung:
is NexmoMediaEvent -> {
val userName = event.embeddedInfo.user.name
userName + "media state: " + event.mediaState
}
Erstellen und ausführen
Presse Cmd + R zu erstellen und erneut auszuführen. Wenn Sie angemeldet sind, können Sie Audio aktivieren oder deaktivieren. Um es zu testen, können Sie die App auf zwei verschiedenen Geräten ausführen.
Referenz
Aktivieren von Audio in Ihrer Applikation
In dieser Anleitung werden wir das Hinzufügen von Audio-Ereignissen zu der Konversation behandeln, die wir in der Anleitung zum Erstellen einer Chat-App Leitfaden. Wir werden uns mit dem Senden und Empfangen von Medienereignissen zu und von der Konversation befassen.
Concepts
In diesem Leitfaden werden Sie mit den folgenden Concepts vertraut gemacht:
- Audio Bein - Ein serverseitiger API-Begriff. Legs sind ein Teil einer Konversation. Wenn Audio in einer Konversation aktiviert ist, wird ein Leg erstellt
- Medienereignis - a
NexmoMediaEventEreignis, das bei einer Konversation ausgelöst wird, wenn sich der Medienstatus eines Mitglieds ändert
Bevor Sie beginnen
Durchlaufen Sie die Anleitung zum Erstellen einer Chat-App. Sie werden auf diesem Projekt aufbauen.
Audiorechte hinzufügen
Da bei der Aktivierung von Audio das Mikrofon des Geräts verwendet wird, müssen Sie den Benutzer um Erlaubnis bitten.
Neuen Eintrag in der app/src/AndroidManifest.xml Datei (unter der letzten <uses-permission Tag):
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Antrag auf Genehmigung beim Start der Anwendung
Berechtigungen innerhalb der onCreate Methode der MainActivity Klasse:
String[] callsPermissions = { Manifest.permission.RECORD_AUDIO };
ActivityCompat.requestPermissions(this, callsPermissions, 123);
Audio UI hinzufügen
Sie müssen nun zwei Schaltflächen hinzufügen, mit denen der Benutzer den Ton aktivieren und deaktivieren kann. Öffnen Sie die app/src/main/res/layout/activity_main.xml Datei und fügen Sie zwei neue Schaltflächen (enableMediaButton und disableMediaButton) rechts unten logoutButton Taste:
<!--...-->
<Button
android:id="@+id/enableMediaButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/conversationEventsScrollView"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Enable Audio" />
<Button
android:id="@+id/disableMediaButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/conversationEventsScrollView"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"
android:text="Disable Audio"
tools:visibility="visible"/>
<!--...-->
Nun müssen Sie dafür sorgen, dass diese Schaltflächen im Fragment zugänglich sind. Fügen Sie zwei neue Eigenschaften im Fragment ChatFragment Klasse:
private Button enableMediaButton;
private Button disableMediaButton;
den Verweis auf die Schaltflächen abrufen, indem Sie findViewById Anrufe im onCreate Methode:
enableMediaButton = view.findViewById(R.id.enableMediaButton);
disableMediaButton = view.findViewById(R.id.disableMediaButton);
Fügen Sie Klick-Ereignis-Listener für die Schaltflächen hinzu, innerhalb der onCreate Methode:
enableMediaButton.setOnClickListener(it -> {
conversation.enableMedia();
enableMediaButton.setVisibility(View.GONE);
disableMediaButton.setVisibility(View.VISIBLE);
});
disableMediaButton.setOnClickListener(it -> {
conversation.disableMedia();
enableMediaButton.setVisibility(View.VISIBLE);
disableMediaButton.setVisibility(View.GONE);
});
HINWEIS: Wenn Sie Audio in einer Konversation aktivieren, wird ein Audioabschnitt für ein Mitglied der Konversation eingerichtet. Der Ton wird nur an andere Teilnehmer der Konversation gestreamt, die ebenfalls Audio aktiviert haben.
Audioereignisse anzeigen
Wenn Sie Medien aktivieren, NexmoMediaEvent Ereignisse werden an die Konversation gesendet. Um diese Ereignisse anzuzeigen, müssen Sie eine NexmoMediaEventListener. Hinzufügen der NexmoMediaEventListener unter addMessageEventListener innerhalb getConversation Methode:
conversation.addMediaEventListener(new NexmoMediaEventListener() {
@Override
public void onMediaEnabled(@NonNull NexmoMediaEvent nexmoMediaEvent) {
updateConversation(nexmoMediaEvent);
}
@Override
public void onMediaDisabled(@NonNull NexmoMediaEvent nexmoMediaEvent) {
updateConversation(nexmoMediaEvent);
}
});
Hinzufügen der Unterstützung des NexmoMediaEvent innerhalb updateConversationView Methode durch Hinzufügen einer neuen Verzweigung zu if-else Erklärung:
else if (event instanceof NexmoMediaEvent) {
NexmoMediaEvent nexmoMediaEvent = (NexmoMediaEvent) event;
String userName = nexmoMediaEvent.getEmbeddedInfo().getUser().getName();
line = userName + "media state: " + nexmoMediaEvent.getMediaState();
}
Erstellen und ausführen
Presse Cmd + R zu erstellen und erneut auszuführen. Wenn Sie angemeldet sind, können Sie Audio aktivieren oder deaktivieren. Um es zu testen, können Sie die App auf zwei verschiedenen Geräten ausführen.
Referenz
Aktivieren von Audio in Ihrer Applikation
In dieser Anleitung werden wir das Hinzufügen von Audio-Ereignissen zu der Konversation behandeln, die wir in der Anleitung zum Erstellen einer Chat-App Leitfaden. Wir werden uns mit dem Senden und Empfangen von Medienereignissen zu und von der Konversation befassen.
Concepts
In diesem Leitfaden werden Sie mit den folgenden Concepts vertraut gemacht:
- Audio Bein - Ein serverseitiger API-Begriff. Legs sind ein Teil einer Konversation. Wenn Audio in einer Konversation aktiviert ist, wird ein Leg erstellt
- Medienereignis - a
NXMMediaEventEreignis, das bei einer Konversation ausgelöst wird, wenn sich der Medienstatus eines Mitglieds ändert
Bevor Sie beginnen
Durchlaufen Sie die Anleitung zum Erstellen einer Chat-App. Sie werden auf diesem Projekt aufbauen.
Audiorechte hinzufügen
Da bei der Aktivierung von Audio das Mikrofon des Geräts verwendet wird, müssen Sie den Benutzer um Erlaubnis bitten.
Info.plist
Jedes Xcode-Projekt enthält eine Info.plist Datei, die alle Metadaten enthält, die in jeder Anwendung oder jedem Paket benötigt werden - Sie finden die Datei innerhalb der AppToAppChat Gruppe.
Ein neuer Eintrag in der Info.plist Datei ist erforderlich:
Fahren Sie mit der Maus über den letzten Eintrag in der Liste und klicken Sie auf das kleine
+die erscheint.Wählen Sie aus der Dropdown-Liste
Privacy - Microphone Usage Descriptionund hinzufügenMicrophone access required in order to make and receive audio calls.für seinen Wert.
Antrag auf Genehmigung beim Start der Anwendung
Öffnen Sie AppDelegate.swift und importieren die AVFoundation Bibliothek gleich nach der Stelle, an der UIKit ist enthalten.
import UIKit
import AVFoundation
Rufen Sie dann requestRecordPermission: innerhalb application:didFinishLaunchingWithOptions:.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
AVAudioSession.sharedInstance().requestRecordPermission { (granted:Bool) in
NSLog("Allow microphone use. Response: %d", granted)
}
return true
}
Audio UI hinzufügen
Sie müssen nun eine Schaltfläche hinzufügen, mit der der Benutzer den Ton aktivieren und deaktivieren kann. In der viewDidLoad Funktion in der ChatViewController.swift Klasse eine neue Schaltfläche für die Leiste hinzufügen.
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Start Audio", style: .plain, target: self, action: #selector(self.toggleAudio))
Audio einschalten
Als Nächstes sollten Sie Audio aktivieren. Fügen Sie eine Eigenschaft in der ChatViewController Klasse.
var audioEnabled = false
Die Leistenschaltfläche aus dem vorherigen Schritt ruft eine toggleAudio Funktion, wenn sie angetippt wird, also fügen Sie die folgende Funktion in die ChatViewController Klasse.
@objc func toggleAudio() {
if audioEnabled {
conversation?.disableMedia()
navigationItem.rightBarButtonItem?.title = "Start Audio"
audioEnabled = false
} else {
conversation?.enableMedia()
navigationItem.rightBarButtonItem?.title = "Stop Audio"
audioEnabled = true
}
}
Beachten Sie, dass durch das Aktivieren von Audio in einer Konversation eine Audioverbindung für ein Mitglied der Konversation hergestellt wird. Der Ton wird nur an andere Gesprächsteilnehmer gestreamt, die ebenfalls Audio aktiviert haben.
Audioereignisse anzeigen
Wenn Sie Medien aktivieren, NXMMediaEvent Ereignisse werden an die Konversation gesendet. Um diese anzuzeigen, müssen Sie eine Funktion aus dem NXMConversationDelegate die die Medienereignisse zur Verarbeitung an das Ereignis-Array anhängen wird.
extension ChatViewController: NXMConversationDelegate {
...
func conversation(_ conversation: NXMConversation, didReceive event: NXMMediaEvent) {
self.events?.append(event)
}
}
In der Funktion process events müssen Sie eine Klausel für eine NXMMediaEvent, die ihrerseits showMediaEvent um die Audioereignisse anzuzeigen.
func processEvents() {
DispatchQueue.main.async { [weak self] in
...
self.events?.forEach { event in
...
if let mediaEvent = event as? NXMMediaEvent {
self.showMediaEvent(event: mediaEvent)
}
}
}
}
func showMediaEvent(event: NXMMediaEvent) {
if event.isEnabled {
addConversationLine("\(event.embeddedInfo?.user.name ?? "A user") enabled audio")
} else {
addConversationLine("\(event.embeddedInfo?.user.name ?? "A user") disabled audio")
}
}
Erstellen und ausführen
Presse Cmd + R zu erstellen und erneut auszuführen. Wenn Sie angemeldet sind, können Sie Audio aktivieren oder deaktivieren. Zum Ausprobieren können Sie die App auf zwei verschiedenen Simulatoren/Geräten ausführen.

Referenz
Aktivieren von Audio in Ihrer Applikation
In dieser Anleitung werden wir das Hinzufügen von Audio-Ereignissen zu der Konversation behandeln, die wir in der Anleitung zum Erstellen einer Chat-App Leitfaden. Wir werden uns mit dem Senden und Empfangen von Medienereignissen zu und von der Konversation befassen.
Concepts
In diesem Leitfaden werden Sie mit den folgenden Concepts vertraut gemacht:
- Audio Bein - Ein serverseitiger API-Begriff. Legs sind ein Teil einer Konversation. Wenn Audio in einer Konversation aktiviert ist, wird ein Leg erstellt
- Medienereignis - a
NXMMediaEventEreignis, das bei einer Konversation ausgelöst wird, wenn sich der Medienstatus eines Mitglieds ändert
Bevor Sie beginnen
Durchlaufen Sie die Anleitung zum Erstellen einer Chat-App. Sie werden auf diesem Projekt aufbauen.
Audiorechte hinzufügen
Da bei der Aktivierung von Audio das Mikrofon des Geräts verwendet wird, müssen Sie den Benutzer um Erlaubnis bitten.
Info.plist
Jedes Xcode-Projekt enthält eine Info.plist Datei, die alle Metadaten enthält, die in jeder Anwendung oder jedem Paket benötigt werden - Sie finden die Datei innerhalb der AppToAppChat Gruppe.
Ein neuer Eintrag in der Info.plist Datei ist erforderlich:
Fahren Sie mit der Maus über den letzten Eintrag in der Liste und klicken Sie auf das kleine
+die erscheint.Wählen Sie aus der Dropdown-Liste
Privacy - Microphone Usage Descriptionund hinzufügenMicrophone access required in order to make and receive audio calls.für seinen Wert.
Antrag auf Genehmigung beim Start der Anwendung
Öffnen Sie AppDelegate.h und importieren die AVFoundation Bibliothek gleich nach der Stelle, an der UIKit ist enthalten.
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
Rufen Sie dann requestRecordPermission: innerhalb application:didFinishLaunchingWithOptions: innerhalb AppDelegate.m.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[AVAudioSession.sharedInstance requestRecordPermission:^(BOOL granted) {
NSLog(@"Allow microphone use. Response: %d", granted);
}];
return YES;
}
Audio UI hinzufügen
Sie müssen nun eine Schaltfläche hinzufügen, mit der der Benutzer den Ton aktivieren und deaktivieren kann. In der viewDidLoad Funktion in der ChatViewController.m Klasse eine neue Schaltfläche für die Leiste hinzufügen.
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Start Audio" style:UIBarButtonItemStyleDone target:self action:@selector(toggleAudio)];
Audio einschalten
Als Nächstes sollten Sie Audio aktivieren. Fügen Sie eine Eigenschaft in der ChatViewController Schnittstelle.
@interface ChatViewController () <UITextFieldDelegate, NXMConversationDelegate>
...
@property BOOL audioEnabled;
@end
Die Leistenschaltfläche aus dem vorherigen Schritt ruft eine toggleAudio Funktion, wenn sie angetippt wird, also fügen Sie die folgende Funktion in die ChatViewController Klasse.
- (void)toggleAudio {
if (self.audioEnabled) {
[self.conversation disableMedia];
self.navigationItem.rightBarButtonItem.title = @"Start Audio";
self.audioEnabled = NO;
} else {
[self.conversation enableMedia];
self.navigationItem.rightBarButtonItem.title = @"Stop Audio";
self.audioEnabled = YES;
}
}
Beachten Sie, dass durch das Aktivieren von Audio in einer Konversation eine Audioverbindung für ein Mitglied der Konversation hergestellt wird. Der Ton wird nur an andere Gesprächsteilnehmer gestreamt, die ebenfalls Audio aktiviert haben.
Audioereignisse anzeigen
Wenn Sie Medien aktivieren, NXMMediaEvent Ereignisse werden an die Konversation gesendet. Um diese anzuzeigen, müssen Sie eine Funktion aus dem NXMConversationDelegate die die Medienereignisse zur Verarbeitung an das Ereignis-Array anhängen wird.
- (void)conversation:(NXMConversation *)conversation didReceiveMediaEvent:(NXMMediaEvent *)event {
[self.events addObject:event];
[self processEvents];
}
In der Funktion process events müssen Sie eine Klausel für eine NXMMediaEvent, die ihrerseits showMediaEvent um die Audioereignisse anzuzeigen.
- (void)processEvents {
dispatch_async(dispatch_get_main_queue(), ^{
self.conversationTextView.text = @"";
for (NXMEvent *event in self.events) {
if ([event isMemberOfClass:[NXMMemberEvent class]]) {
[self showMemberEvent:(NXMMemberEvent *)event];
} else if ([event isMemberOfClass:[NXMTextEvent class]]) {
[self showTextEvent:(NXMTextEvent *)event];
} else if ([event isMemberOfClass:[NXMMediaEvent class]]) {
[self showMediaEvent:(NXMMediaEvent *)event];
}
}
});
}
- (void) showMediaEvent:(NXMMediaEvent *)event {
if (event.isEnabled) {
[self addConversationLine:[NSString stringWithFormat:@"%@ enabled audio", event.embeddedInfo.user.name]];
} else {
[self addConversationLine:[NSString stringWithFormat:@"%@ disabled audio", event.embeddedInfo.user.name]];
}
}
Erstellen und ausführen
Presse Cmd + R zu erstellen und erneut auszuführen. Wenn Sie angemeldet sind, können Sie Audio aktivieren oder deaktivieren. Zum Ausprobieren können Sie die App auf zwei verschiedenen Simulatoren/Geräten ausführen.
