Reproducir un flujo de audio en una llamada
Este fragmento de código reproduce un flujo de audio en la llamada especificada.
Ejemplo
Sustituya las siguientes variables en el código de ejemplo:
| Clave | Descripción |
|---|---|
VOICE_CALL_ID | The UUID of the call leg. |
VOICE_STREAM_URL | The URL of the audio file that will be streamed into an array. The URL must be in an array. |
Requisitos previos
Ejecute el siguiente comando en el símbolo del sistema de su terminal para crear la dirección JWT para la autenticación:
export JWT=$(nexmo jwt:generate $PATH_TO_PRIVATE_KEY application_id=$NEXMO_APPLICATION_ID)Escriba el código
Añada lo siguiente a play-audio-into-a-call.sh:
curl -X PUT https://api.nexmo.com/v1/calls/$VOICE_CALL_ID/stream \
-H "Authorization: Bearer $JWT"\
-H "Content-Type: application/json"\
-d '{"stream_url": ["'"$VOICE_STREAM_URL"'"]}'Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
npm install @vonage/server-sdkCrea un archivo llamado stream-audio-into-a-call.js y añade el siguiente código:
const { Vonage } = require('@vonage/server-sdk');
const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_PRIVATE_KEY,
});Escriba el código
Añada lo siguiente a stream-audio-into-a-call.js:
vonage.voice.streamAudio(VOICE_CALL_ID, VOICE_STREAM_AUDIO, 0)
.then((resp) => console.log(resp))
.catch((error) => console.error(error));
const stopStream = () => {
vonage.voice.stopStreamAudio(VOICE_CALL_ID)
.then((resp) => console.log(resp))
.catch((error) => console.error(error));
};
setTimeout(stopStream, 5000); // delay 5 secondsEjecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
Añada lo siguiente a build.gradle:
implementation 'com.vonage:server-sdk-kotlin:2.1.1'Crea un archivo llamado StreamAudioIntoCall y añade el siguiente código al método main:
val client = Vonage {
applicationId(VONAGE_APPLICATION_ID)
privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
}Escriba el código
Añada lo siguiente al método main del archivo StreamAudioIntoCall:
val call = client.voice.call(VOICE_CALL_ID)
var streamInfo = call.streamAudio(VOICE_STREAM_URL)
Thread.sleep(5000)
streamInfo = call.stopStream()Ejecute su código
Podemos utilizar el plugin aplicación para Gradle para simplificar la ejecución de nuestra aplicación. Actualiza tu build.gradle con lo siguiente:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.kt.voice por el paquete que contiene StreamAudioIntoCall:
Requisitos previos
Añada lo siguiente a build.gradle:
implementation 'com.vonage:server-sdk:9.3.1'Crea un archivo llamado StreamAudioToCall y añade el siguiente código al método main:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();Escriba el código
Añada lo siguiente al método main del archivo StreamAudioToCall:
var response = client.getVoiceClient().startStream(VOICE_CALL_ID, VOICE_STREAM_URL, 0);
Thread.sleep(5000);
response = client.getVoiceClient().stopStream(VOICE_CALL_ID);Ejecute su código
Podemos utilizar el plugin aplicación para Gradle para simplificar la ejecución de nuestra aplicación. Actualiza tu build.gradle con lo siguiente:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''Ejecute el siguiente comando gradle para ejecutar su aplicación, sustituyendo com.vonage.quickstart.voice por el paquete que contiene StreamAudioToCall:
Requisitos previos
Install-Package VonageEscriba el código
Añada lo siguiente a PlayAudioStreamIntoCall.cs:
var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_PRIVATE_KEY_PATH);
var client = new VonageClient(credentials);
var command = new StreamCommand() { StreamUrl = new[] { VOICE_STREAM_URL } };
var response = await client.VoiceClient.StartStreamAsync(VOICE_CALL_ID, command);Requisitos previos
composer require vonage/clientEscriba el código
Añada lo siguiente a index.php:
require_once __DIR__ . '/../../vendor/autoload.php';
$keypair = new \Vonage\Client\Credentials\Keypair(file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH), VONAGE_APPLICATION_ID);
$client = new \Vonage\Client($keypair);
$client->voice()->streamAudio(UUID, 'https://nexmo-community.github.io/ncco-examples/assets/voice_api_audio_streaming.mp3');
Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
pip install vonage python-dotenvEscriba el código
Añada lo siguiente a play-audio-stream-into-call.py:
from vonage import Auth, Vonage
from vonage_voice import AudioStreamOptions, CallMessage
client = Vonage(
Auth(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_PRIVATE_KEY,
)
)
response: CallMessage = client.voice.play_audio_into_call(
VOICE_CALL_ID,
audio_stream_options=AudioStreamOptions(stream_url=[VOICE_STREAM_URL]),
)
pprint(response)Ejecute su código
Guarde este archivo en su máquina y ejecútelo:
Requisitos previos
gem install vonageEjecute su código
Guarde este archivo en su máquina y ejecútelo:
Pruébalo
Al ejecutar el código, se reproduce un flujo de audio del archivo especificado en la llamada identificada con el UUID especificado.
Lecturas complementarias
- Conferencias telefónicas - Esta guía explica los dos conceptos que Vonage asocia con una llamada, una etapa y una conversación.