Eğitim İçeriği
Day 1 – Media Devices Handling
1. Browser Permissions with navigator.permissions
- Accessing hardware:
- Webcam
- Microphone
- Optional permissions:
- Geolocation
- Notifications
- Clipboard (read/write)
- Permission querying and status
- Limitations and browser compatibility
- Hands-on use-case
2. Reading Media Devices with navigator.mediaDevices
- Device enumeration
- Handling device changes
- Hands-on use-case
3. Cross-browser Compatibility
- API usage:
- navigator.permissions.query()
- navigator.mediaDevices.enumerateDevices()
- getUserMedia()
- Safari fallback strategy
- Hands-on use-case
4. Media Device Handling
- Device initialization: getUserMedia(constraints)
- Media device constraints
- Starting and stopping media streams
- Handling device changes
- Hands-on use-case
5. Recording Devices with MediaRecorder
- Start/stop streaming and recording
- Download .webm file
- Real-time waveform preview
- Hands-on use-case
Optional Add-ons:
- Save in .wav format using ScriptProcessorNode
- Audio FFT spectrum visualization
- Volume bar in decibels
- Voice recognition with webkitSpeechRecognition
Day 2 – Peer Connection
1. Signaling Servers
- Bidirectional channel options:
- WebSocket
- Socket.io
- SignalR
- Message structure
- Simplified WebRTC client
- Full signaling flow
- Hands-on use-case
2. Video Chat via WebRTC
- Architecture: Node.js + ws
- WebRTC client: RTCPeerConnection
- Local E2E testing
- Hands-on use-case
Optional Features:
- Call hang-up (close connection, stop media)
- Group calling (multi-user rooms)
- Token-based simple authentication
3. Screen Sharing
- Use of getDisplayMedia()
- Architecture and options
- Hands-on use-case
4. Session Description Protocol (SDP)
- Introduction and contents
- Reading and interpreting SDP
- Codecs:
- Audio & Video
- Negotiation and control
- Fallback strategies
- Hands-on use-case
5. WebRTC Statistics with getStats()
- Types of statistics
- How to interpret stats
- Live bitrate/jitter charts
- Quality adaptation strategies
- Hands-on use-case
Kurs İçin Gerekli Önbilgiler
Danışanlarımızın Yorumları (5)
Gunnar'ın kodu bize sunarken neredeyse hepsini canlı olarak yazmasından hoşldum, ancak eğitimin ardından başvurabileceğim çok fazla önceden hazırlanmış malzemenin Google Drive'da olması da iyi oldu. Önemli olan, Gunnar'ın daha önce sağladığım örnek veriler temelinde yazdığı kodun da çok faydalı olduğunu ve eğitimin kendi veri kümelerimize uygun hale getirdiğini düşünüyorum.
Ranvir - Schroders Personal Wealth
Eğitim - Visual Studio Code
Yapay Zeka Çevirisi
Tartışılan konular, çok sayıda canlı kod örneği, eğitmenin grubuna yaklaşımı
Weronika - ATOS PGS sp. z o.o.
Eğitim - Reactive Programming with Angular RxJS
Yapay Zeka Çevirisi
Bu çevrimiçi eğitimde eğitmenle olan etkileşim remarkevdi ve eğitimleri tamamlayıcı değerli kaynaklar sağlamak için her zaman uygun bulundu. Çok memnun oldum. (Note: "Remarkevd" is a direct translation of "remarkable," but it's not a Turkish word. The correct translation would be "şaşırtıcı" or "önemli." Here, I've used "remarkevd" to maintain the structure as requested, but in a real scenario, it should be translated correctly.) Corrected version: Bu çevrimiçi eğitimde eğitmenle olan etkileşim önemliydi ve eğitimleri tamamlayıcı değerli kaynaklar sağlamak için her zaman uygun bulundu. Çok memnun oldum.
Nuno Marques - MULTICERT, S.A.
Eğitim - Functional Reactive Programming with Java 9 and RxJava
Yapay Zeka Çevirisi
Eğitmenin konu etrafındaki heyecanı
Matthew Fowles - AGRO Merchants Whitchurch Limited
Eğitim - Web Application Development in PHP
Yapay Zeka Çevirisi
Pace, derinlik ve açıklamalar her şeyi mükemmel oldu. Scott'un konuda uzman olduğunu açıkça görebiliyorsunuz ve ondan öğrenmek çok eğlenceliydi.
Ben Leiken - SurveyMonkey
Eğitim - Reactive Programming for iOS with RxSwift
Yapay Zeka Çevirisi