План на курса
Ден 1 – Управление медии устройства
1. Разрешения на браузър с navigator.permissions
- Accessване на хардуер:
- Уеб камера
- Микрофон
- Опционални разрешения:
- Геолокация
- Уведомления
- Клипборд (четене/писане)
- Запитване и статус на разрешенията
- Ограничения и съвместимост с браузъра
- Практично приложение
2. Четене на медии устройства с navigator.mediaDevices
- Нумерация на устройствата
- Обработка на промени в устройствата
- Практично приложение
3. Крос-браузър съвместимост
- Използване на API:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Стратегия за запазване за Safari
- Практично приложение
4. Управление на медии устройства
- Инициализация на устройствата: getUserMedia(constraints)
- Ограничения на медии устройства
- Стартиране и спряне на медии потоци
- Обработка на промени в устройствата
- Практично приложение
5. Записване на устройства с MediaRecorder
- Стартиране/спряне на поточни и записи
- Изтегляне на файл .webm
- Реално време предварителен преглед на вълнова форма
- Практично приложение
Опционални допълнения:
- Записване в формат .wav с помощта на ScriptProcessorNode
- Визуализация на аудио FFT спектър
- Декбелов стълб на звучност
- Разпознаване на глас с webkitSpeechRecognition
Ден 2 – Взаимна връзка
1. Сигнални сървъри
- Опции за двупосочен канал:
- WebSocket
- Socket.io
- SignalR
- Структура на съобщението
- Упростен WebRTC клиент
- Пълна сигнална последователност
- Практично приложение
2. Видео чат през WebRTC
- Архитектура: Node.js + ws
- WebRTC клиент: RTCPeerConnection
- Локално тестване от край до край
- Практично приложение
Опционални функции:
- Завършване на разговора (затваряне на връзката, спряне на медии)
- Групови разговори (стаи за многопотребители)
- Проста аутентификация с токен
3. Споделяне на екран
- Използване на getDisplayMedia()
- Архитектура и опции
- Практично приложение
4. Протокол за описание на сесията (SDP)
- Въведение и съдържание
- Четене и интерпретация на SDP
- Кодекси:
- Аудио & Видео
- Преговори и контрол
- Стратегии за запазване
- Практично приложение
5. WebRTC Statistics с getStats()
- Типове статистики
- Как да интерпретираме статистиките
- Живи диаграми за битрейт/джъдър
- Стратегии за адаптация на качеството
- Практично приложение
Изисквания
Oтзиви от потребители (5)
Хареса ми как Gunnar написа почти целия код в движение, докато преминавахме през него, но че имаше много предварително подготвени материали в Google Drive, към които мога да се обърна след обучението. Кодът, който Gunnar написа въз основа на примерните данни, които предоставих предварително, също беше изключително полезен и направи обучението подходящо за нашите собствени набори от данни.
Ranvir - Schroders Personal Wealth
Курс - Visual Studio Code
Машинен превод
Теми, които бяха обсуждани, множество живи кодови примерци, отношението на треньора към групата
Weronika - ATOS PGS sp. z o.o.
Курс - Reactive Programming with Angular RxJS
Машинен превод
Хоранто, обучението е онлайн, взаимодействието с треньора е забележително и той винаги е на разположение, за да предоставя ценни източници, които да допълнят обучението. Очень съм доволна.
Nuno Marques - MULTICERT, S.A.
Курс - Functional Reactive Programming with Java 9 and RxJava
Машинен превод
Тренерски ентусиазъм за темата
Matthew Fowles - AGRO Merchants Whitchurch Limited
Курс - Web Application Development in PHP
Машинен превод
Крайно добри са темпото, дълбочината и обясненията. Ясно е, че Скот е експерт в тази тема и да се учи от него е много приятно.
Ben Leiken - SurveyMonkey
Курс - Reactive Programming for iOS with RxSwift
Машинен превод