Анонсированная в начале мая прошлого года технология 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.
В данном случае функция webkitGetUserMedia получает три параметра, смысл которых заключается в следующем: первый — это строка, определяющая, что мы хотим работать именно с видео, второй — callback-функция, вызываемая в случае успеха попытки доступа к web-камере и, наконец, третий — функция, которая будет вызвана, если получить доступ к оборудованию не удалось по каким-либо причинам.
Строка window.webkitURL.createObjectURL(stream) представляет собой получение Blob URL (элемент File API) видео-потока, после чего в объекте video и начнется отображение видео.
Согласно спецификациям WebRTC функция GetUserMedia должна поинтересоваться у пользователя не возражает ли он, что приложением будет получен доступ к его web-камере, приблизительно так же, как это делает Geolocation API.
[Источники: <1>,<2> ]
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> ]