Nhân tiện dự án mình đang làm có liên quan tới một công nghệ khá nổi tiếng được phát triển bởi Google, Mozilla và Opera, đó là WebRTC.

Vậy WebRTC là gì?

 

 

WebRTC là một dự án mở miễn phí cung cấp các trình duyệt và các ứng dụng di động với các tính năng RTC (Real-Time Communications) thông qua các API đơn giản. Các thành phần WebRTC đã được tối ưu hoá để phục vụ mục đích này tốt nhất. Vì là một mã nguồn mở đa nền tảng, nên base của nó được viết bằng C, do đó cần phải Compiling nó cho các nền tảng khác. Các bạn có thể xem thêm tại WebRTC

Để thuận tiện cho việc xây dựng mã nguồn, máy tính các bạn cần chạy các hệ điều hành riêng biệt như Linux để build cho Android, macOs để build cho ios. Để đơn giản hoá hơn mình sẽ giới thiệu một công cụ khá hay cho việc quản lý máy ảo. Đó là Vagrant.

Vagrant là 1 công cụ xây dựng và quản lý các máy ảo, có thể chạy trên Ubuntu, MacOS và cả Windows. Có thể nói Vagrant đang đứng trên vai những người khổng lồ. Máy ảo được cung cấp bởi các provider là VirtualBox, VMware, AWS,… Các phần mềm được cài đặt sử dụng provisioner đã trở thành quy chuẩn là shell scripts, Chef, Puppet. Điều này giúp cho vagrant có thể quản lý nhiều loại máy ảo khác nhau, tự động cài đặt phần mềm cho máy tính mà không quan tâm đang sử dụng OS hay distribution nào.

Giới thiệu qua thế nhỉ, mình bắt tay vào cái chủ đề chính ngày hôm nay thôi :D

  • Trước tiên các bạn tiến hành clone repo này về để tiến hành build : https://github.com/hoanghiephui/webrtc-build-scripts-1.git Ở Repo này mình đã sửa một số lỗi khi build cho Android. Toàn bộ các thao tác đã được tác giả thiết lập sẵn trong file shell build.sh. Bạn chỉ việc thao tác theo các bước hướng dẫn sau

Trên Mac hoặc Windows

  •  Nếu bạn không có máy Ubuntu, hoặc bạn quá lười để thiết lập một máy ảo theo cách thủ công, bạn có thể xây dựng WebRTC cho Android trên Mac hoặc Windows PC thông qua tập lệnh Vagrant
  • Trước tiên, bạn cần tải về và cài đặt Vagrant. Sau đó, từ thư mục android /, bạn cần phải thực hiện tuần tự các lệnh shell sau đây :
# Khởi động máy ảo
vagrant up

# Đăng nhập vào một Vagrant box vừa khởi tạo
vagrant ssh

# Cài đặt các phụ thuộc bắt buộc trên máy ảo. Chú ý là sẽ mất một chút thời gian
install_dependencies

 Trên máy tính Windows, bạn có thể phải đối mặt với các vấn đề với tên địa chỉ trên VM mà không được xử lý chính xác. Bạn cần phải khắc phục điều đó bằng lệnh dưới:

mkdir mybuild
cd mybuild
cp /vagrant/build.sh .
source ./build.sh
get_webrtc
build_apprtc

 

Xây dựng thư viện

Sau khi bạn hoàn thành các bước trên, bạn sẽ tiến hành xây dựng thư viện.

  • Xây dựng thư viện cho Android
# Lấy mã nguồn và các công cụ WebRTC(Cái này mất khá lâu, tuỳ thuộc vào tốc độ mạng của bạn.
 Tôi khuyên các bạn nên chuẩn bị một ly cafe :D)
get_webrtc

# Xây dựng apprtc
build_apprtc

# Xây dựng mã nguồn với chế độ debug
export WEBRTC_DEBUG=true
build_apprtc

 * Sau khi mọi việc hoàn thành, các bạn sẽ có một thông báo như Debug build for apprtc complete for revision 18983 Và một thư mục libjingle_peerconnection_builds lưu toàn bộ các file *.so và java

Để tiến hành xây dựng cho các nền tảng khác, các bạn xem chi tiết ở file README khi clone từ git về.