Plan Szkolenia
Dzień 1 – Obsługa urządzeń multimedialnych
1. Pozwalanie przeglądarkom na dostęp do urządzeń multimedialnych z użyciem navigator.permissions
- Access sprzętu:
- Webcam
- Mikrofon
- Opcjonalne pozwolenia:
- Geolokalizacja
- Powiadomienia
- Schowek (odczyt/zapis)
- Zapytanie o pozwolenie i sprawdzenie stanu
- Ograniczenia i kompatybilność z przeglądarkami
- Przykład praktyczny
2. Odczytywanie urządzeń multimedialnych z użyciem navigator.mediaDevices
- Wyliczanie urządzeń
- Obsługa zmian urządzeń
- Przykład praktyczny
3. Kompatybilność z różnymi przeglądarkami
- Użycie API:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Strategia awaryjna dla Safari
- Przykład praktyczny
4. Obsługa urządzeń multimedialnych
- Inicjalizacja urządzeń: getUserMedia(constraints)
- Ograniczenia urządzeń multimedialnych
- Rozpoczynanie i zatrzymywanie strumieni multimedialnych
- Obsługa zmian urządzeń
- Przykład praktyczny
5. Nagrywanie urządzeń z MediaRecorder
- Rozpoczynanie i zatrzymywanie transmisji i nagrywania
- Pobieranie pliku .webm
- Podgląd falowej formy dźwięku w czasie rzeczywistym
- Przykład praktyczny
Opcjonalne dodatki:
- Zapis w formacie .wav za pomocą ScriptProcessorNode
- Wizualizacja spektrogramu FFT audio
- Paski głośności w decybelach
- Rozpoznawanie mowy z webkitSpeechRecognition
Dzień 2 – Połączenia między urządzeniami
1. Serwery sygnalizacyjne
- Opcje kanałów dwukierunkowych:
- WebSocket
- Socket.io
- SignalR
- Struktura wiadomości
- Uproszczony klient WebRTC
- Pełny przepływ sygnalizacyjny
- Przykład praktyczny
2. Wideo chat za pomocą WebRTC
- Architektura: Node.js + ws
- Klient WebRTC: RTCPeerConnection
- Lokalne testy E2E
- Przykład praktyczny
Opcjonalne funkcje:
- Wieszanie połączenia (zamknięcie połączenia, zatrzymanie multimediów)
- Wielu użytkowników (pokoje wieloosobowe)
- Prosta autentykacja oparta na tokenach
3. Udostępnianie ekranu
- Użycie getDisplayMedia()
- Architektura i opcje
- Przykład praktyczny
4. Protokół Opisu Sesji (SDP)
- Wprowadzenie i zawartość
- Odczytywanie i interpretowanie SDP
- Kodeki:
- Audio & Video
- Negocjacje i kontrola
- Strategie awaryjne
- Przykład praktyczny
5. WebRTC Statistics z getStats()
- Rodzaje statystyk
- Jak interpretować statystyki
- Wyświetlanie wykresów szybkości transmisji/opóźnień w czasie rzeczywistym
- Strategie dostosowywania jakości
- Przykład praktyczny
Wymagania
Opinie uczestników (5)
Podobało mi się to, że Gunnar pisał prawie cały kod na bieżąco, ale na dysku Google było mnóstwo wstępnie przygotowanych materiałów, do których mogłem się odwołać po szkoleniu. Kod napisany przez Gunnara na podstawie przykładowych danych, które dostarczyłem wcześniej, był również niezwykle przydatny i sprawił, że szkolenie było istotne dla naszych własnych zestawów danych.
Ranvir - Schroders Personal Wealth
Szkolenie - Visual Studio Code
Przetłumaczone przez sztuczną inteligencję
Tematy, które zostały omówione, wiele przykładów kodu na żywo, postawa trenera wobec grupy
Weronika - ATOS PGS sp. z o.o.
Szkolenie - Reactive Programming with Angular RxJS
Przetłumaczone przez sztuczną inteligencję
Chociaż kurs odbywał się online, interakcje z trenerem były niesamowite, a ten zawsze był dostępny, aby dostarczać wartościowych źródeł uzupełniających szkolenie. Jestem bardzo zadowolony.
Nuno Marques - MULTICERT, S.A.
Szkolenie - Functional Reactive Programming with Java 9 and RxJava
Przetłumaczone przez sztuczną inteligencję
Zapał trenera do tematu
Matthew Fowles - AGRO Merchants Whitchurch Limited
Szkolenie - Web Application Development in PHP
Przetłumaczone przez sztuczną inteligencję
Pacing, głębokość i wyjaśnienia były wszystkich wzorców. Jest jasne, że Scott jest ekspertem w tej dziedzinie, a uczenie się u niego było niezwykle przyjemne.
Ben Leiken - SurveyMonkey
Szkolenie - Reactive Programming for iOS with RxSwift
Przetłumaczone przez sztuczną inteligencję