Swift

Implementierung der "Klingelton abspielen"-Logik

Wir brauchen eine Methode, die den Vonage-Audiostream pausiert und den Standard-iOS-Audioplayer startet.

Da das iPhone-Audiosystem ein globales Singleton ist, können wir nicht gleichzeitig einen Klingelton und den Vonage-Stream abspielen, ohne dass Audio-Artefakte entstehen. Daher beenden wir die Erfassung/Wiedergabe von Vonage-Audio vor der Wiedergabe des Klingeltons.

Fügen Sie diese Methode zu Ihrer AudioDeviceRingtone Klasse:

func playRingtone(from url: URL) {
    // 1. Pause audio
    // These methods stop the Vonage audio unit from accessing the hardware
    _ = stopCapture()
    _ = stopRendering()
    // 2. Stop & replace existing audio player
    if let player = audioPlayer {
        player.stop()
        audioPlayer = nil
    }
    
    // 3. Initialize the AVAudioPlayer
    do {
        audioPlayer = try AVAudioPlayer(contentsOf: url)
        audioPlayer?.delegate = self
        
        // Loop indefinitely
        audioPlayer?.numberOfLoops = -1
        
        // 4. Setup Vibration Timer
        if vibratesWithRingtone {
            vibrateTimer = Timer.scheduledTimer(timeInterval: vibrateFrequencySeconds,
                                                target: self,
                                                selector: #selector(buzz(_:)),
                                                userInfo: nil,
                                                repeats: true)
        }
        
        // 5. Play the audio
        audioPlayer?.play()
    } catch {
        print("Ringtone audio player initialization failure \(error)")
        audioPlayer = nil
    }
}

Benutzerdefinierter Audiotreiber

Erfahren Sie, wie Sie einen benutzerdefinierten Audiotreiber verwenden können, um die Audiodaten des Herausgebers und der Abonnenten anzupassen. Sie werden den benutzerdefinierten Audiotreiber verwenden, wenn Sie das Audio starten und stoppen und Ihre eigene Audiodatei abspielen möchten. Wenn Sie etwas anderes als das SDK-Standardverhalten für Live-Videochats mit Audio machen möchten, verwenden Sie benutzerdefinierte Audiotreiber.

Verfügbar am:
Swift
Schritte
1
Einführung
2
Erste Schritte
3
Ein neues Projekt erstellen
4
Hinzufügen des Vonage Video SDK
5
Authentifizierung einrichten
6
Übersicht
7
Erstellen Sie die benutzerdefinierte Audiotreiberklasse
8
Implementierung der "Klingelton abspielen"-Logik
9
Implementierung der Logik "Klingelton anhalten
10
Integration mit Vonage Video Manager
11
Audio über Sitzungsereignisse steuern
12
Wie es funktioniert
13
Schlussfolgerung