Đề cương khóa học

Ngày 1 – Xử Lý Thiết Bị Media

1. Quyền Truy Cập Trình Duyệt với navigator.permissions

  • Truy cập phần cứng:
    • Webcam
    • Microphone
  • Quyền truy cập tùy chọn:
    • Geolocation
    • Notifications
    • Clipboard (đọc/viết)
  • Truy vấn và trạng thái quyền
  • Hạn chế và khả năng tương thích trình duyệt
  • Trường hợp sử dụng thực tế

2. Đọc Thiết Bị Media với navigator.mediaDevices

  • Cấu hình thiết bị
  • Xử lý thay đổi thiết bị
  • Trường hợp sử dụng thực tế

3. Khả Năng Tương Thích Giữa Các Trình Duyệt

  • Sử dụng API:
    • navigator.permissions.query()
    • navigator.mediaDevices.enumerateDevices()
    • getUserMedia()
  • Lựa chọn thay thế cho Safari
  • Trường hợp sử dụng thực tế

4. Xử Lý Thiết Bị Media

  • Kích hoạt thiết bị: getUserMedia(constraints)
  • Ràng buộc thiết bị media
  • Bắt đầu và dừng các luồng media
  • Xử lý thay đổi thiết bị
  • Trường hợp sử dụng thực tế

5. Ghi Thiết Bị với MediaRecorder

  • Bắt đầu/dừng luồng và ghi âm
  • Tải xuống file .webm
  • Xem trước sóng âm thanh thời gian thực
  • Trường hợp sử dụng thực tế

Tùy Chọn Thêm:

  • Lưu ở định dạng .wav bằng ScriptProcessorNode
  • Trực quan hóa phổ FFT âm thanh
  • Thanh âm lượng theo decibel
  • Nhận diện giọng nói với webkitSpeechRecognition

Ngày 2 – Kết Nối Peer-to-Peer

1. Máy Chủ Tín Hiệu

  • Các tùy chọn kênh hai chiều:
    • WebSocket
    • Socket.io
    • SignalR
  • Cấu trúc tin nhắn
  • Mô phỏng WebRTC client đơn giản
  • Dòng chảy tín hiệu đầy đủ
  • Trường hợp sử dụng thực tế

2. Video Chat qua WebRTC

  • Kiến trúc: Node.js + ws
  • WebRTC client: RTCPeerConnection
  • Thử nghiệm E2E cục bộ
  • Trường hợp sử dụng thực tế

Tính Năng Tùy Chọn:

  • Hủy cuộc gọi (đóng kết nối, dừng media)
  • Gọi nhóm (phòng nhiều người dùng)
  • Xác thực đơn giản dựa trên token

3. Chia Sẻ Màn Hình

  • Sử dụng getDisplayMedia()
  • Kiến trúc và các tùy chọn
  • Trường hợp sử dụng thực tế

4. Giao Thức Mô Tả Phiên (SDP)

  • Giới thiệu và nội dung
  • Đọc và diễn giải SDP
  • Codec:
    • Âm thanh & Video
    • Đàm phán và kiểm soát
    • Lựa chọn thay thế
  • Trường hợp sử dụng thực tế

5. Thống Kê WebRTC với getStats()

  • Các loại thống kê
  • Cách diễn giải thống kê
  • Biểu đồ bitrate/jitter trực tiếp
  • Chiến lược điều chỉnh chất lượng
  • Trường hợp sử dụng thực tế

 

Yêu cầu

Khóa học này phù hợp cho các nhà phát triển frontend và full-stack, kiến trúc sư kỹ thuật, và kỹ sư xây dựng các tính năng giao tiếp thời gian thực dựa trên trình duyệt như video chat, chia sẻ màn hình, hoặc streaming âm thanh. Người tham gia nên có kiến thức cơ bản về JavaScript và công nghệ web, với kinh nghiệm tùy chọn trong Node.js và giao tiếp dựa trên WebSocket.
 14 Giờ học

Số người tham gia


Giá cho mỗi người tham gia

Đánh giá (5)

Các khóa học sắp tới

Các danh mục liên quan