当前位置:首页 > React

react如何使用agora

2026-02-12 06:00:26React

在 React 中使用 Agora 实现实时音视频通信

安装 Agora SDK
通过 npm 或 yarn 安装 Agora Web SDK:

npm install agora-rtc-sdk
# 或
yarn add agora-rtc-sdk

初始化 Agora 客户端
在 React 组件中导入 SDK 并创建客户端实例:

import AgoraRTC from 'agora-rtc-sdk';

const client = AgoraRTC.createClient({ mode: 'rtc', codec: 'vp8' });

加入频道并处理音视频流

配置 App ID 和 Token
从 Agora 控制台获取 App ID 和临时 Token(测试时可使用无 Token 模式):

const appId = 'YOUR_APP_ID';
const channel = 'YOUR_CHANNEL_NAME';
const token = 'YOUR_TOKEN'; // 可为 null

实现加入频道逻辑
调用 client.join() 并处理本地/远程流:

client.join(appId, channel, token, uid, () => {
  // 创建本地音视频流
  const localStream = AgoraRTC.createStream({ audio: true, video: true });

  localStream.init(() => {
    // 播放本地流
    localStream.play('local-video-container');
    // 发布流
    client.publish(localStream);
  });
});

// 监听远程流
client.on('stream-added', (evt) => {
  client.subscribe(evt.stream, 'remote-video-container');
});

处理组件生命周期

使用 useEffect 管理资源
在 React 函数组件中,需在卸载时清理资源:

useEffect(() => {
  return () => {
    client.leave(() => {
      localStream.close();
    });
  };
}, []);

实现基础功能控件

添加静音/取消视频按钮
通过操作流对象实现控制:

const muteAudio = () => {
  localStream.muteAudio();
};
const enableVideo = () => {
  localStream.unmuteVideo();
};

错误处理与日志

监听 SDK 事件
添加错误处理和调试日志:

client.on('error', (err) => {
  console.error('Agora client error:', err);
});

完整组件示例

import React, { useEffect } from 'react';
import AgoraRTC from 'agora-rtc-sdk';

function AgoraVideoCall() {
  let localStream;

  useEffect(() => {
    const client = AgoraRTC.createClient({ mode: 'rtc', codec: 'vp8' });

    client.join('APP_ID', 'CHANNEL', null, (uid) => {
      localStream = AgoraRTC.createStream({ audio: true, video: true });
      localStream.init(() => {
        localStream.play('local-video');
        client.publish(localStream);
      });
    });

    return () => {
      client.leave();
      if (localStream) localStream.close();
    };
  }, []);

  return (
    <div>
      <div id="local-video" style={{ width: 300, height: 200 }}></div>
    </div>
  );
}

注意事项:

react如何使用agora

  • 生产环境必须使用 Token 鉴权机制
  • 需处理浏览器权限请求(麦克风/摄像头)
  • 移动端需注意 Safari 等浏览器的自动播放策略
  • 最新版本建议使用 Agora Web SDK NG(4.x+)

分享给朋友:

相关文章

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yarn…

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…

react项目如何

react项目如何

创建React项目 使用create-react-app工具快速初始化项目。确保已安装Node.js(建议版本≥12.0.0),运行以下命令生成新项目: npx create-react-app m…

如何监控react性能

如何监控react性能

使用 React Profiler API React 16.5 及以上版本内置了 Profiler API,可直接测量组件渲染时间。通过 <React.Profiler> 包裹目标组件,…

react项目如何启动

react项目如何启动

启动React项目的步骤 确保已安装Node.js(建议版本12以上)和npm/yarn。可通过以下命令检查版本: node -v npm -v 全局安装create-react-app脚手架工具(…

react如何引入jq

react如何引入jq

在React中引入jQuery的方法 React和jQuery可以共存,但需要注意避免直接操作DOM,因为React有自己的虚拟DOM机制。以下是几种引入jQuery的方式: 通过npm安装jQue…