📜  agora 视频通话 - Javascript (1)

📅  最后修改于: 2023-12-03 15:13:17.090000             🧑  作者: Mango

Agora视频通话 - JavaScript

Agora视频通话是一个基于WebRTC的实时音视频解决方案。通过Agora的JavaScript SDK,您可以创建一个独立的音视频通话应用程序,用于视频会议,在线教育,直播等。

基本概念

在Agora视频通话中,我们需要熟悉以下基本概念:

  • 频道(Channel):Agora使用频道来帮助您管理和隔离不同的用户流。每个频道有一个唯一的ID。
  • 用户ID(User ID):每个参与者都需要一个唯一的用户ID。
  • 角色(Role):Agora支持两种角色:主持人和观众。主持人可以发布和订阅音视频流,而观众只能订阅音视频流。
  • 流(Stream):流用于传输音视频数据。
快速开始

首先,让我们看一个简单的实现,创建一个频道,加入频道,发布本地流和订阅远程流,具体流程如下:

// 创建Client对象
let client = AgoraRTC.createClient({ mode: 'live', codec: 'h264' });

// 加入频道
client.join(<YOUR_APP_ID>, <YOUR_CHANNEL_ID>, <YOUR_TOKEN>, <YOUR_USER_ID>)
  .then(uid => {
    console.log(`Join channel success, uid: ${uid}`);

    // 创建本地流
    let localStream = AgoraRTC.createStream({ streamID: uid, audio: true, video: true, screen: false });
    // 初始化本地流
    localStream.init(() => {
      console.log('Init local stream success');

      // 发布本地流
      client.publish(localStream, (err) => {
        console.log(`Publish local stream error: ${err}`);
      });
    }, (err) => {
      console.log(`Init local stream error: ${err}`);
    });

    // 订阅远程流
    client.on('stream-added', evt => {
      console.log('Stream added');

      // 创建远程流
      let remoteStream = evt.stream;
      // 订阅远程流
      client.subscribe(remoteStream, (err) => {
        console.log(`Subscribe stream error: ${err}`);
      });
    });

    // 订阅远程流成功
    client.on('stream-subscribed', evt => {
      console.log('Stream subscribed');

      // 播放远程流
      let remoteStream = evt.stream;
      remoteStream.play(<DOM_ELEMENT_ID>);
    });

  }, (err) => {
    console.log(`Join channel error: ${err}`);
  });
API参考

Agora提供了丰富的API,以下是一些常用的API:

  • AgoraRTC.createClient(options) - 创建一个Client对象。
  • client.join(appid, channel, tokenOrKey, userId) - 加入指定的频道。
  • client.publish(stream, errorCallback) - 发布本地流。
  • client.unpublish(stream, errorCallback) - 停止发布本地流。
  • client.subscribe(stream, errorCallback) - 订阅远程流。
  • stream.init(successCallback, errorCallback) - 初始化本地流。
  • stream.play(domElementId, errorCallback) - 播放音视频流。

更多API请参考Agora官方文档。

如何学习更多?
  • Agora文章中心 - https://www.agora.io/cn/news/
  • Agora开发者社区 - https://rtcdeveloper.com/
  • Agora官方文档 - https://docs.agora.io/cn/视频/Agora%20Platform/start_live_web?platform=Web

以上是对Agora视频通话的JavaScript SDK的介绍,希望能为您提供帮助。