Skip to content

Nền tảng ​

Năm app, mỗi app viết bằng công cụ của nền tảng mình. Giữa các ngôn ngữ, chúng không dùng chung dòng code nào, chỉ chung bản "hợp đồng", thư mục effects và icon app. Ngoại lệ là iOS và macOS: app Mac compile phần lớn code của iOS.

UI
Vue 3, Tailwind CSS, shadcn-vue
WebRTC
RTCPeerConnection có sẵn của trình duyệt
Socket signaling
WebSocket
Camera
getUserMedia()
Chia sẻ màn hình
getDisplayMedia()
Đổi nguồn video
RTCRtpSender.replaceTrack()
E2EE
Insertable Streams hoặc RTCRtpScriptTransform, chạy trong worker
Background và sticker
MediaPipe ImageSegmenter + FaceLandmarker, canvas 2D
Picture-in-picture
Document Picture-in-Picture API, video PiP fallback
Xem chi tiết nền tảng này →

Nên đọc app nào trước ​

Bắt đầu với web client, kể cả khi bạn nhắm tới nền tảng khác. API WebRTC của trình duyệt là chuẩn mà các SDK native làm theo, code ngắn, và useCall.ts chứa trọn cuộc gọi 1:1 trong một file. Sau đó đọc app gần với nền tảng của bạn nhất:

Bạn đang làm choĐọc
Flutter, React Native, hoặc bất cứ thứ gì chạy trên webrtc-sdkAndroid và iOS: cùng họ SDK
App desktop dùng thẳng libwebrtcWindows: C shim cho thấy toàn bộ phần API native mà một cuộc gọi cần
Một app khác chạy trên trình duyệtWeb
Các nền tảng của AppleiOS và macOS

Mỗi app lưu thiết lập ở đâu ​

AppNơi lưuLưu những gì
WeblocalStorageĐịa chỉ server, effect đã chọn
AndroidSharedPreferencesĐịa chỉ server, effect đã chọn
iOS, macOSUserDefaultsĐịa chỉ server, effect đã chọn, thiết bị (trên Mac)
Windows%LOCALAPPDATA%\WebRtcDemo\settings.jsonĐịa chỉ server, công tắc E2EE, thiết bị, effect đã chọn

Library ​

AppWebRTC
WebCủa trình duyệt
Androidio.github.webrtc-sdk:android 150.7871.01
iOS, macOSwebrtc-sdk/Specs 150.7871.01, qua local Swift package ios/Packages/WebRTC
Windowswebrtc-sdk/libwebrtc m150.7871.03, qua một C shim

Cả bốn bản build native đều lấy từ cùng nhánh m150 của bản fork webrtc-sdk, nhờ vậy FrameCryptor của chúng giống hệt nhau. Phiên bản đầy đủ có trong Phiên bản và giới hạn.