Swift

Implementar la lógica "Reproducir tono de llamada

Necesitamos un método que detenga el flujo de audio de Vonage e inicie el reproductor de audio estándar de iOS.

Dado que el sistema de audio del iPhone es un singleton global, no podemos reproducir un tono de llamada y el flujo de Vonage simultáneamente sin que se produzcan artefactos de audio. Por lo tanto, dejamos de capturar/renderizar el audio de Vonage antes de reproducir el tono de llamada.

Añada este método a su AudioDeviceRingtone clase:

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
    }
}

Controlador de audio personalizado

Aprenda a utilizar un controlador de audio personalizado para personalizar el audio de la transmisión del editor y del suscriptor. Utilizará el controlador de audio personalizado cuando desee iniciar y detener el audio reproducir su propio archivo de audio y hacer cualquier cosa fuera del comportamiento predeterminado del chat de vídeo en directo proporcionado por el SDK.

Disponible en:
Kotlin Swift
Pasos
1
Introducción
2
Primeros pasos
3
Crear un nuevo proyecto
4
Añadir el SDK de vídeo de Vonage
5
Configuración de la autenticación
6
Visión general
7
Crear la clase de controlador de audio personalizado
8
Implementar la lógica "Reproducir tono de llamada
9
Implementar la lógica "Detener tono de llamada
10
Integración con Vonage Video Manager
11
Control de audio mediante eventos de sesión
12
Cómo funciona
13
Conclusión