Spec-Zone.ru › Web APIs

Создание вызова

  • Предыдущий
  • Следующий

Захватывающие времена — теперь вы предоставите своим пользователям возможность создавать вызовы.

  1. Прежде всего, получите ссылку на кнопку "Вызов", определенную в HTML, добавив следующее в конец script.js:

    const callBtn = document.querySelector(".call-btn");
    
  2. Когда вызывающий нажмет "Вызов", вам нужно будет попросить у него идентификатор участника, которого он хочет вызвать (который мы сохраним в переменной code в getStreamCode()), а затем создать подключение с этим кодом. Добавьте следующее под вашим предыдущим кодом:

    callBtn.addEventListener("click", () => {
      getStreamCode();
      connectPeers();
      const call = peer.call(code, window.localStream); // A
    
      call.on("stream", (stream) => {
        // B
        window.remoteAudio.srcObject = stream; // C
        window.remoteAudio.autoplay = true; // D
        window.peerStream = stream; //E
        showConnectedContent(); //F    });
      });
    });
    

    Давайте разберем этот код:

    • const call = peer.call(code, window.localStream): Это создаст вызов с code и window.localStream, которые мы ранее назначили. Обратите внимание, что localStream будет потоком пользователя localStream. Итак, для вызывающего А это будет его поток, а для В — его собственный поток.
    • call.on('stream', (stream) => { : peerJS предоставляет событие stream, которое вы можете использовать с созданным вами call. Когда вызов начинает передавать поток, вам нужно убедиться, что удаленный поток, поступающий от вызова, назначен правильным HTML-элементам и окну. Именно здесь вы это сделаете.
    • Анонимная функция принимает объект MediaStream в качестве аргумента, который затем нужно установить в HTML вашего окна, как вы делали раньше. Здесь мы получаем удаленный элемент <audio> и назначаем поток, переданный функции, свойству srcObject.
    • Убедитесь, что атрибут autoplay элемента также установлен в true.
    • Убедитесь, что peerStream окна установлено в переданный функции поток.
    • Наконец, вы хотите отобразить правильное содержимое, поэтому вызовите функцию showConnectedContent(), которую вы создали ранее.
  3. Чтобы проверить это, откройте localhost:8000 в двух окнах браузера и нажмите «Вызов» в одном из них. Вы должны увидеть это:

    Two screens side by side both A cream background with the words 'phone a friend' in bold, dark green font as the heading. The first screen has 'Your device ID is: 3b77' and the second 'Your device ID is: 2doa', is immediately below the title and 'please use headphones!' below that. Following on, a big dark green button with 'Call' written in the same cream color of the background. The second screen has a browser dialogue that asks for a peer id.

    Если вы отправите идентификатор другого участника, вызов будет подключен!

Пока все работает, но нам нужно дать другому браузеру возможность ответить или отклонить вызов. Мы сделаем это дальше.

  • Предыдущий
  • Следующий

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Build_a_phone_with_peerjs/Connect_peers/Creating_a_call

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API