API cuộc gọi video cho PHP

Tác giả. Kofi Ocran. Tôi là một kỹ sư phần mềm xây dựng các sản phẩm và dịch vụ bằng công nghệ web. Tôi chiếm vị trí quan trọng giữa công nghệ phần mềm và khoa học dữ liệu và tìm hiểu thêm bằng cách chia sẻ kiến ​​thức của mình thông qua các bài báo kỹ thuật

Giới thiệu

Laravel là một ngôn ngữ mạnh mẽ nhằm làm cho quá trình phát triển web trở nên đơn giản mà không làm mất chức năng của ứng dụng. Điều này đặc biệt đúng khi bạn cố gắng xây dựng ứng dụng trò chuyện video Laravel

Trước đây, tôi đã xây dựng ứng dụng trò chuyện WebRTC/Laravel và viết về nó tại đây. Thêm trò chuyện video vào ứng dụng Laravel của bạn. WebRTC chỉ là một trong những cách mà mọi người có thể triển khai các tính năng trò chuyện video. Các công ty như Agora cũng cung cấp SDK trò chuyện video được đóng gói đầy đủ để cung cấp trải nghiệm trò chuyện video Tương tác thời gian thực chất lượng cao. Là một người có kinh nghiệm phát triển WebRTC, tôi có thể nói với bạn rằng có một số hạn chế với WebRTC, chẳng hạn như

  1. Chất lượng trải nghiệm. Vì WebRTC được truyền qua Internet, đây là miền công cộng nên chất lượng trải nghiệm khó có thể đảm bảo
  2. khả năng mở rộng. Khả năng mở rộng khá hạn chế đối với các cuộc gọi video nhóm do tính chất ngang hàng của WebRTC

Sau khi tôi được giới thiệu về Agora, tôi đã rất ấn tượng rằng việc thiết lập tính năng cuộc gọi điện video tương tự với Agora dễ dàng hơn so với WebRTC. Hãy để tôi hướng dẫn bạn qua hướng dẫn ứng dụng trò chuyện Laravel với Agora

Tại sao Agora là giải pháp ưa thích

Sau khi tạo ứng dụng trò chuyện Laravel với Agora, tôi muốn nêu bật một số ưu điểm

  1. Có một SDK cho mọi thứ — giọng nói, video, phát trực tiếp, chia sẻ màn hình, v.v.
  2. Tôi không phải thiết lập một máy chủ rẽ với coturn trên Amazon EC2 như tôi đã làm trong triển khai khác để chuyển tiếp lưu lượng giữa các đồng nghiệp trên các mạng khác nhau
  3. Bạn nhận được 10.000 phút miễn phí mỗi tháng và điều này mang lại cho bạn sự linh hoạt để phát triển nguyên mẫu giải pháp của mình miễn phí
  4. Bạn không gặp khó khăn trong việc quản lý cơ sở hạ tầng cơ bản hỗ trợ chức năng cuộc gọi điện video
  5. Tài liệu API trực quan có sẵn

điều kiện tiên quyết

  • Một dự án Laravel có xác thực VueJs với một số người dùng đã tạo. Bạn có thể tải xuống dự án cơ sở sau để bắt đầu. Người khởi xướng Laravel 8 Vue Auth
  • Hiểu biết về hệ thống phát sóng và sự kiện của Laravel và WebSockets nói chung
  • Truy cập vào tài khoản Pusher miễn phí trên Pusher. com
  • Tài khoản Agora. Cách bắt đầu với Agora

Thiết lập dự án

  1. Mở thiết bị đầu cuối hoặc bảng điều khiển của bạn và điều hướng đến thư mục dự án Laravel của bạn
  2. Cài đặt các gói cần thiết
composer require pusher/pusher-php-server "~4.0"
npm install --save laravel-echo pusher-js
  1. Tải xuống mã nguồn AgoraDynamicKey PHP từ kho lưu trữ Agora. AgoraDynamicKey
    Giữ thư mục đã tải xuống ở vị trí bên ngoài thư mục dự án. Một số tệp từ thư mục sẽ được sao chép vào dự án của chúng tôi khi chúng tôi định cấu hình phần cuối.

Định cấu hình phần cuối

Chúng tôi sẽ thiết lập các bộ điều khiển và lớp khác nhau với các phương thức cần thiết để tạo mã thông báo Agora để thiết lập cuộc gọi. Hệ thống Broadcast của Laravel cũng sẽ được kích hoạt

Chúng tôi bắt đầu với các điểm cuối sẽ được truy cập từ giao diện người dùng

1. Thêm các tuyến ứng dụng

Thêm đoạn mã sau vào route/web. php

2. Kích hoạt hệ thống Broadcast của Laravel

Bỏ ghi chú BroadcastServiceProvider trong config/app. phpin thư mục dự án của bạn

Change
//App\Providers\BroadcastServiceProvider::class
to
App\Providers\BroadcastServiceProvider::class

3. Tạo kênh hiện diện trong các tuyến/kênh. php

Chúng tôi làm quen với người dùng trực tuyến bằng cách xem ai đã đăng ký kênh này ở giao diện người dùng. Chúng tôi trả lại ID và tên của họ

4. Tạo một sự kiện để thực hiện cuộc gọi có tên MakeAgoraCall

Sự kiện này sẽ được sử dụng để thực hiện cuộc gọi bằng cách phát một số dữ liệu qua kênh agora-online.
Chạy lệnh sau trong thiết bị đầu cuối/bảng điều khiển của bạn.

php artisan make:event MakeAgoraCall

Thêm đoạn mã sau vào MakeAgoraCall. php

5. Thêm các tệp trình tạo AgoraDynamicKey đã tải xuống

  • Mở dòng lệnh của bạn và trong thư mục ứng dụng của dự án, tạo thư mục có tên Lớp cùng với thư mục con có tên AgoraDynamicKey
cd app
mkdir -p Class/AgoraDynamicKey
  • Mở thư mục AgoraDynamicKey đã được tải xuống trong quá trình thiết lập dự án. Tiếp theo, sao chép AccessToken. php và RtcTokenBuilder. php từ thư mục src vào thư mục AgoraDynamicKey đã được tạo ở bước trước
  • Mở AccessToken. php và RtcTokenBuilder. php và thêm không gian tên của dự án để giúp chúng có thể truy cập được trong bộ điều khiển

RtcTokenBuilder. php trở thành

Truy cập thẻ. php trở thành

6. Tạo AgoraVideoController. php

Tiếp theo, tạo AgoraVideoController bằng dòng lệnh

php artisan make:controller AgoraVideoController

Thêm đoạn mã sau vào AgoraVideoController. php

Phân tích các phương thức trong AgoraVideoController

  • Change
    //App\Providers\BroadcastServiceProvider::class
    to
    App\Providers\BroadcastServiceProvider::class
    4. Để xem trang cuộc gọi video
  • Change
    //App\Providers\BroadcastServiceProvider::class
    to
    App\Providers\BroadcastServiceProvider::class
    0. Để tạo mã thông báo động Agora. Mã tạo mã thông báo được lấy từ mẫu/RtcTokenBuilderSample. php, có thể tìm thấy trong các tệp được tải xuống trong quá trình thiết lập dự án
  • Change
    //App\Providers\BroadcastServiceProvider::class
    to
    App\Providers\BroadcastServiceProvider::class
    1. Để gọi một người dùng cụ thể bằng cách phát sự kiện MakeAgoraCall trên kênh hiện diện của Laravel mà tôi đã đặt tên là agora-online-channel. Tất cả người dùng đã đăng nhập đăng ký và lắng nghe các sự kiện trên kênh này

Dữ liệu nhận được từ MakeAgoraEvent bởi người dùng đã đăng ký kênh agora-online chứa thông tin sau

  • Change
    //App\Providers\BroadcastServiceProvider::class
    to
    App\Providers\BroadcastServiceProvider::class
    2. Đây là ID riêng của người dùng được cho là sẽ nhận cuộc gọi từ người gọi
  • Change
    //App\Providers\BroadcastServiceProvider::class
    to
    App\Providers\BroadcastServiceProvider::class
    3. Đây là kênh cuộc gọi mà người gọi đã tham gia ở giao diện người dùng. Đây là kênh được tạo bằng Agora SDK ở giao diện người dùng. Đây là phòng mà người gọi đã tham gia, đang chờ người được gọi cũng tham gia để thiết lập kết nối cuộc gọi
  • Change
    //App\Providers\BroadcastServiceProvider::class
    to
    App\Providers\BroadcastServiceProvider::class
    4. ID của người gọi

Từ MakeAgoraEvent, người dùng có thể xác định xem họ có được gọi hay không nếu giá trị userToCall khớp với ID của họ. Chúng tôi hiển thị thông báo cuộc gọi đến với một nút để chấp nhận cuộc gọi. Họ biết ai là người gọi theo giá trị của from

Định cấu hình giao diện người dùng

Chúng tôi sẽ tạo giao diện người dùng ứng dụng trò chuyện Laravel để thực hiện và nhận cuộc gọi video với khả năng chuyển đổi trạng thái bật và tắt của máy ảnh và micrô

1. Thêm một liên kết đến Agora SDK

Thêm đoạn sau < script src=”https. //cdn. khoảng trống. io/sdk/phát hành/AgoraRTCSDK-3. 3. 1. js”> vào thẻ đầu của tài nguyên/lượt xem/bố cục/ứng dụng. lưỡi. php

Sau đó nó trở thành

2. Khởi tạo Laravel Echo và Pizer

Khởi tạo Laravel Echo và Pusher trong resource/js/bootstrap. js bằng cách bỏ ghi chú khối mã JavaScript sau

3. Tạo thành phần trò chuyện Agora

Trên thiết bị đầu cuối hoặc dòng lệnh của bạn, hãy tạo một thành phần có tên là AgoraChat. vue bằng lệnh sau

Change
//App\Providers\BroadcastServiceProvider::class
to
App\Providers\BroadcastServiceProvider::class
0

Thêm đoạn mã sau

Phân tích thành phần AgoraChat

Trên trang AgoraChat, chúng tôi hiển thị các nút có tên của từng người dùng đã đăng ký và hiện tại họ đang trực tuyến hay ngoại tuyến

Để thực hiện cuộc gọi, chúng tôi nhấp vào nút của người dùng có trạng thái trực tuyến. Người dùng trực tuyến cho biết người sẵn sàng nhận cuộc gọi. Đối với bản demo của chúng tôi, chúng tôi thấy một danh sách người dùng. Người dùng có tên Bar được chỉ định là đang trực tuyến. Người gọi có tên Foo có thể gọi Bar bằng cách nhấp vào nút

Bar nhận được thông báo cuộc gọi đến với các nút Chấp nhận và Từ chối và tên của người gọi

Từ hình ảnh thông báo cuộc gọi ở trên, chúng ta thấy tên người gọi là Foo. Sau đó, thanh có thể chấp nhận cuộc gọi để thiết lập kết nối

Sơ đồ sau đây giải thích logic cuộc gọi theo mã

4. Đăng ký AgoraChat. thành phần vue

Thêm đoạn mã sau vào resource/js/app. js

5. Tạo chế độ xem trò chuyện Agora

Trên thiết bị đầu cuối hoặc dòng lệnh của bạn, hãy tạo chế độ xem có tên là agora-chat. lưỡi. php bằng lệnh sau

Change
//App\Providers\BroadcastServiceProvider::class
to
App\Providers\BroadcastServiceProvider::class
1

Thêm đoạn mã sau vào agora-chat. lưỡi. php

6. Cập nhật các biến env bằng các phím Pusher và Agora

Các. env nằm ở thư mục gốc của thư mục dự án của bạn. Thêm thông tin đăng nhập bạn nhận được từ Agora và Pizer

thử nghiệm

  1. Khởi động máy chủ phát triển Laravel từ thiết bị đầu cuối của bạn
Change
//App\Providers\BroadcastServiceProvider::class
to
App\Providers\BroadcastServiceProvider::class
2
  1. Mở một thiết bị đầu cuối khác và chạy giao diện người dùng
Change
//App\Providers\BroadcastServiceProvider::class
to
App\Providers\BroadcastServiceProvider::class
3
  1. Mở hai trình duyệt khác nhau hoặc hai phiên bản của cùng một trình duyệt, với một phiên bản ở chế độ ẩn danh và truy cập http. //127. 0. 0. 1. 8000/agora-chat
  2. Bạn sẽ thấy một trang đăng nhập nếu bạn chưa đăng nhập
  3. Sau khi đăng nhập thành công, bạn sẽ tự động được chuyển hướng đến trang trò chuyện video, tại đây bạn sẽ thấy các nút có tên của người dùng với chỉ báo về trạng thái trực tuyến của họ
  4. Trong mỗi trình duyệt bạn đã mở, những người dùng khác đã đăng ký trên ứng dụng được hiển thị như mô tả trong bước 5
  5. Trong một trình duyệt, bạn có thể gọi cho người dùng đã đăng nhập trên trình duyệt kia bằng cách nhấp vào nút có tên của họ
  6. Người dùng khác được nhắc nhấp vào nút Chấp nhận để thiết lập đầy đủ cuộc gọi

Video Trình diễn Cuộc gọi Video

Để xác nhận rằng bản demo của bạn đang hoạt động bình thường, hãy xem video demo của tôi như một ví dụ về giao diện và chức năng của dự án đã hoàn thành. Cuộc gọi video Agora Demo

Phần kết luận

Bây giờ bạn đã triển khai tính năng trò chuyện video trong trò chuyện Laravel. Nó không khó lắm đúng không?

Để bao gồm tính năng gọi điện trong ứng dụng web phát video trực tuyến Laravel, bạn không cần phải xây dựng nó từ đầu

Agora cung cấp rất nhiều tính năng tuyệt vời, tất cả trong một gói. Nó cũng giúp doanh nghiệp tiết kiệm thời gian phát triển khi triển khai trò chuyện video vào các ứng dụng hiện có. Điều duy nhất một nhà phát triển phải làm là xây dựng một giao diện người dùng hấp dẫn — Agora xử lý phần cuối trò chuyện video

Làm cách nào để tích hợp tính năng gọi video trong PHP?

Cài đặt .
Sao chép kho lưu trữ. 1 $ git bản sao https. //github. com/videosdk-live/videosdk-rtc-api-server-examples. git 2$ cd php
Cập nhật các giá trị Khóa API và Bí mật. 1VIDEOSDK_API_KEY='' 2VIDEOSDK_SECRET_KEY='' 3VIDEOSDK_API_ENDPOINT="https. //api. videodk. sống"
Cài đặt phụ thuộc. 1 đô la cài đặt nhà soạn nhạc
Chạy máy chủ

API nào tốt nhất cho cuộc gọi điện video?

10 API & SDK hàng đầu dành cho Hội nghị truyền hình .
kích hoạt. io. .
sao chổi. .
Sinch. .
ứng viên. .
SDK video. .
ZujoNow. .
Vonage. Vonage Video API giúp dễ dàng xây dựng trải nghiệm video tùy chỉnh trong bất kỳ ứng dụng di động, web hoặc máy tính để bàn nào và được xây dựng dựa trên tiêu chuẩn ngành WebRTC có sẵn trên hàng tỷ thiết bị. .
Hằng ngày. đồng. Hằng ngày

WebRTC có tốt cho cuộc gọi video không?

Cái hay của WebRTC là nó không cần bất kỳ phần mềm hay phần cứng bổ sung nào, có thể thực hiện truyền phát âm thanh và video mà không cần đến các dịch vụ web trung gian. Real-time communication and the URL based meeting rooms are the prime examples for the level of comfort provided by video call WebRTC API integration.

Ứng dụng nào gọi video miễn phí?

Google Meet .

Chủ Đề