Pull to refresh

Chrome в dev-версии получил поддержку WebRTC

Reading time2 min
Views4.4K
Анонсированная в начале мая прошлого года технология Web Real-Time Communications (WebRTC) интегрирована в dev-версию Chrome и, по всей видимости, официально появится в одном из следующих релизов браузера.

WebRTC представляет собой открытый фреймворк, попавший в ведение Google после покупки ей компании Global IP Solutions, и реализующий собой технологию передачи в реальном времени видео и аудио напрямую между браузерами. Фактически это означает, что Chrome сможет выполнять те же самые функции, которые сейчас выполняет Skype или другие подобные ему плагины (Google talk), причем с точки зрения разработчиков создание таких приложений будет представлять собой простое использование некоторого JavaScript-API, посмотреть которое можно здесь. Интересно то, что Mozilla Foundation предлагает свой вклад в WebRTC — спецификацию MediaStream Processing, позволяющую программно смешивать аудио-потоки или отслеживать движение в передающемся онлайн видео.

Ключевым понятием в WebRTC API является объект MediaStream, который является общим JavaScript-интерфейсом для взаимодействия с аудио- и видео-потоками. Для того, что разработчик смог организовать взаимодействие с ними, он должен иметь инструмент доступа к микрофону и web-камере пользователя — для этой цели служит функция getUserMedia. В случае, если эта функция завершилась успешно и доступ к камере и микрофону был получен, разработчику возвращается экземпляр класса MediaStream, представляющий из себя, собственно, интерфейс для работы с мультимедиа-данными.


HTML-код страницы, иллюстрирующий работу с WebRTC API.

<html>
  <head>
    <title>Тест WebRTC</title>
  </head>
  <body>

    <h2>Привет, Хабр!</h2>

    <video id="live" autoplay></video>
    <script type="text/javascript">
      video = document.getElementById("live")

      navigator.webkitGetUserMedia("video",
          function(stream) {
            video.src = window.webkitURL.createObjectURL(stream)
          },
          function(err) {
            console.log("Ошибка!")
          }
      )
    </script>
  </body>
</html>


В данном случае функция webkitGetUserMedia получает три параметра, смысл которых заключается в следующем: первый — это строка, определяющая, что мы хотим работать именно с видео, второй — callback-функция, вызываемая в случае успеха попытки доступа к web-камере и, наконец, третий — функция, которая будет вызвана, если получить доступ к оборудованию не удалось по каким-либо причинам.

Строка window.webkitURL.createObjectURL(stream) представляет собой получение Blob URL (элемент File API) видео-потока, после чего в объекте video и начнется отображение видео.

Согласно спецификациям WebRTC функция GetUserMedia должна поинтересоваться у пользователя не возражает ли он, что приложением будет получен доступ к его web-камере, приблизительно так же, как это делает Geolocation API.

[Источники: <1>,<2> ]
Tags:
Hubs:
+27
Comments10

Articles

Change theme settings