当前位置:首页 > React

react如何使用agora

2026-03-31 09:18:31React

使用 React 集成 Agora 实时音视频 SDK

在 React 项目中集成 Agora 实时音视频 SDK 需要安装 SDK 并初始化客户端。以下是一个基本实现流程:

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

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

初始化 Agora 客户端 在 React 组件中导入并初始化 Agora 客户端:

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

const VideoCall = () => {
  const clientRef = useRef(null);
  const localStreamRef = useRef(null);

  useEffect(() => {
    // 初始化客户端
    clientRef.current = AgoraRTC.createClient({ mode: 'rtc', codec: 'h264' });

    return () => {
      // 清理资源
      if (localStreamRef.current) {
        localStreamRef.current.close();
      }
      if (clientRef.current) {
        clientRef.current.leave();
      }
    };
  }, []);

  // 加入频道函数
  const joinChannel = async (appId, channel, token, uid) => {
    try {
      await clientRef.current.init(appId);
      await clientRef.current.join(token, channel, uid);

      // 创建本地流
      localStreamRef.current = AgoraRTC.createStream({
        audio: true,
        video: true,
        screen: false
      });

      await localStreamRef.current.init();
      localStreamRef.current.play('local-stream');
      await clientRef.current.publish(localStreamRef.current);
    } catch (error) {
      console.error('加入频道失败:', error);
    }
  };

  return (
    <div>
      <div id="local-stream" style={{ width: '320px', height: '240px' }}></div>
      <button onClick={() => joinChannel('YOUR_APP_ID', 'test', null, null)}>
        加入频道
      </button>
    </div>
  );
};

export default VideoCall;

处理远程流

添加远程流处理逻辑以显示其他用户的视频:

react如何使用agora

useEffect(() => {
  if (!clientRef.current) return;

  const handleStreamAdded = (evt) => {
    const remoteStream = evt.stream;
    const id = remoteStream.getId();
    clientRef.current.subscribe(remoteStream, (err) => {
      if (err) {
        console.error('订阅流失败:', err);
        return;
      }
      remoteStream.play(`remote-stream-${id}`);
    });
  };

  clientRef.current.on('stream-added', handleStreamAdded);

  return () => {
    clientRef.current.off('stream-added', handleStreamAdded);
  };
}, []);

添加 UI 元素

在组件中添加远程视频容器:

return (
  <div>
    <div id="local-stream" style={{ width: '320px', height: '240px' }}></div>
    <div id="remote-streams">
      {/* 远程流将在这里动态添加 */}
    </div>
    <button onClick={() => joinChannel('YOUR_APP_ID', 'test', null, null)}>
      加入频道
    </button>
  </div>
);

注意事项

确保替换代码中的 YOUR_APP_ID 为实际的 Agora 项目 App ID。可以从 Agora 控制台获取。

react如何使用agora

考虑使用环境变量存储敏感信息如 App ID 和 Token。

对于生产环境,建议实现 Token 服务器端生成机制,而不是在前端硬编码。

Agora 提供了 React 专用的 UI 组件库 agora-rtc-react,可以简化开发流程:

npm install agora-rtc-react

分享给朋友:

相关文章

如何使用java

如何使用java

安装Java开发环境 下载并安装Java Development Kit(JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME指向JDK安装路径…

如何开发react

如何开发react

开发React应用的基本步骤 安装Node.js和npm 确保系统中已安装Node.js(包含npm)。可通过官网下载安装包,安装后验证版本: node -v npm -v 创建React项目…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…

react如何清理

react如何清理

清理 React 项目的方法 清理未使用的依赖项 运行 npm prune 或 yarn install --production 可以移除 node_modules 中未在 package.json…

react如何调度

react如何调度

React 调度机制概述 React 的调度机制通过 Fiber 架构 和 Scheduler 模块实现任务优先级管理与时间切片(Time Slicing),确保高优先级更新(如用户交互)能快速响应,…