Перейти к содержанию

Создание события готовности к трансляции#

Бета-версия

Функциональность находится в режиме бета-версии. Функции могут быть изменены, а также могут работать нестабильно. В будущем за функционал может взиматься дополнительная плата.
Подключение к функционалу можно запросить через техподдержку GREEN-API

От класса GreenApiVoipClient наследует несколько важных событий, с помощью которых можно управлять жизненным циклом вызова.

После успешного установления соединения и готовности удаленного медиапотока запускается событие remote-stream-ready. Это событие используется для начала воспроизведения удаленного аудиоопотока.

const audioElement = document.createElement('audio');

Наш объект будет использоваться обработчиком объектов:

greenApiClient.addEventListener('remote-stream-ready', (event) => {
  const remoteStream = event.detail;

  // For example, attach the stream to an audio element to play the sound
  const audioElement = document.createElement('audio');
  audioElement.srcObject = remoteStream;
  audioElement.play();

  console.log('Remote stream ready and playing.');
});

В наших примерах мы управляем медиапотоком для соверщения вызовов, а так же останавливаем поток при завершении вызовов.

async function run() {
  greenApiClient.addEventListener("local-stream-ready", (...args) => console.log("local-stream-ready", ...args));
  greenApiClient.addEventListener("remote-stream-ready", (...args) => {
    console.log("remote-stream-ready", ...args);
    audioElement.srcObject = args[0].detail;
    audioElement.play();
  });
  greenApiClient.addEventListener("end-call", (...args) => {
    console.log("end-call", ...args);
    audioElement.srcObject = null;
    audioElement.pause();
  });
  greenApiClient.addEventListener("call-state", (...args) => console.log("call-state", ...args));
  greenApiClient.addEventListener("incoming-call", (...args) => console.log("incoming-call", ...args));
}