声网实现音频通话

WebRTC - Agora (声网)简介与实现音视频通话 Agora (声网)简介 官网: https://www.agora.io/cn/ 一个专注移动端的高清实时通话云服务解决方案。 SD-RTN(Software Defined Real-time Network) SD-RTN(Software Defined Real-time Network)是依赖于云计算技术并致力于全球实时音视频业务传输的“智简”网络,覆盖全球 200+ 国家。作为提供实... 阅读详情

声网官网文档: 官网链接
安装

npm install agora-rtc-sdk-ng --save

主要代码

import AgoraRTC from 'agora-rtc-sdk-ng'
// 定义的变量:
   appid: '', // appId
   token: '', // 根据房间号生成的token(房间号和token对应)
   channel: '', // 房间号(房间号和token对应)
   uid: null,
   agoraClient: null, // 实例
   localTracks: {  // 信道
     audioTrack: null
   },
   remoteUsers: {},
   callState: null

// 通话 开始 ==================================
      sharRTC () {
        if (this.token) {
          this.token = ''
          this.Leave()
          return
        }
        // 创建本地客户端 AgoraRTC 的实例
        this.agoraClient = AgoraRTC.createClient({ mode: 'rtc', codec: 'vp8' })
        // 用户信息
        this.uid = null
        this.appid = window.SITE_CONFIG.appid
        this.channel = '1' // 通道号需要与token绑定,且通话两边保持一致
        API.***.getToken(this.channel).then(({data}) => { // 获取统一的token
          console.log('==getToken2===------=', data)
          this.token = data.data
          // 连接
          this.join()
        })
      },
      // 获取
      async join () {
        // 添加事件侦听器以在远程用户发布时播放远程曲目.
        this.agoraClient.on('user-published', this.handleUserPublished)
        this.agoraClient.on('user-unpublished', this.handleUserUnpublished)
        this.agoraClient.on('connection-state-change', this.getState)
        // 加入频道
        Promise.all([
          // join the channel
          this.agoraClient.join(this.appid, this.channel, this.token || null),
          // 使用麦克风
          AgoraRTC.createMicrophoneAudioTrack()]).then(async(result) => {
            console.log('使用麦克风=======', result)
            this.uid = result[0]
            this.localTracks.audioTrack = result[1]
            // 将本地曲目发布到频道
            await this.agoraClient.publish(Object.values(this.localTracks))
          }).catch((error) => {
            console.log(error)
          })
      },
      handleUserPublished (user, mediaType) {
        const id = user.uid
        this.remoteUsers[id] = user
        this.subscribe(user, mediaType)
      },
      handleUserUnpublished (user) {
        const id = user.uid
        delete this.remoteUsers[id]
      },
      async subscribe (user, mediaType) {
        const uid = user.uid
        // 订阅远程用户
        await this.agoraClient.subscribe(user, mediaType)
        if (mediaType === 'audio') {
          user.audioTrack.play()
        }
      },
      // 获取当前通话状态
      getState (state) {
        this.callState = state
      },
      // 客户离开信道
      async Leave () {
        if (this.callState === 'CONNECTING' || this.callState === 'CONNECTED' || this.callState === 'RECONNECTING') {
          this.localTracks.audioTrack && this.localTracks.audioTrack.stop()
          this.localTracks.audioTrack && this.localTracks.audioTrack.close()
          this.agoraClient && await this.agoraClient.leave()
          this.remoteUsers = {}
          console.log('客户离开信道成功==============')
        }
      }
【声网】实现web端与uniapp微信小程序端音视频互动 利用声网实现音视频互动。 阅读详情

相关推荐

深入理解移动端H5视频通话中的摄像头切换实践

在移动端H5应用中实现视频通话功能,已经成为现代Web应用的标配之一。随着Web技术的发展,我们不仅能够在桌面浏览器上实现复杂的视频通话功能,也能够在移动端浏览器中提供几乎原生应用级别的流畅体验。本文将详细介绍如何在使用声网(Agora)Web SDK的移动端H5应用中实现摄像头的切换功能,这对于提升用户体验至关重要。首先,我们需要理解声网Agora RTC SDK NG提供的API和对象模型。在这个SDK中,对象是控制视频轨道的核心,包括摄像头的选择和切换。

分享一些感兴趣的技术方面 919

Vue 集成声网SDK,实现视频通话。

【代码】Vue 集成声网SDK,实现视频通话。

weixin_57422253的博客 3100

Agora-SDK-在Android中的使用(在线视频通话)

在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

2401_84121499的博客 924

Web音视频通话解决方案 —— Agora Web SDK NG 版接入教程

Web音视频通话解决方案 —— Agora Web SDK NG 版接入教程 引言 随着社会的发展,人们对实时音视频的需求越来越多。在线会议,电商直播,在线教育等相关产品不断涌现。但是对于个人开发者或者小团队来说,自己实现一个实时音视频服务并且要保障服务稳定,满足低延时等要求,难度非常大。为此我们需要寻找一个合适的解决方案。功能强大且可靠的声网Agora就成为了极佳的选择。 今年声网推出了下一代 Agora Web SDK (Agora Web SDK NG),基于 TypeScript 开发,使用 Pro

wujun的博客 5796

【2024】UniApp集成声网RTC全平台实战:从H5到原生离线打包的Vue3+TS解决方案

本文详细介绍了2024年使用UniApp集成声网RTC实现跨平台实时音视频通话的完整实战方案。文章基于Vue3+TypeScript技术栈,提供了从H5端快速验证到Android、iOS原生离线打包的全流程指南,重点解决了UniApp环境下集成声网SDK的配置难点、TypeScript类型支持以及多平台代码封装等核心问题,旨在帮助开发者高效实现一套代码覆盖H5与原生App的RTC功能。

weixin_29213525的博客 238

UniApp+声网RTC实战:H5到Android/iOS三端音频通话避坑指南(附TypeScript代码)

本文详细介绍了在UniApp项目中集成声网RTC SDK,实现H5、Android、iOS三端音频通话的实战经验与避坑指南。重点解析了使用Vue3和TypeScript技术栈时,从H5端集成、Android离线基座模式打包到iOS原生配置的全流程,并提供了核心代码示例和常见问题解决方案。

weixin_29230059的博客 333

声网Agora音频通话实践 | 掘金技术征文

前言 在互联网快速发展的时代,用户体验 可以说是一个重要的关键词,不论什么样的产品,都要考虑的是用户的一个真实感受,同类型的产品,有很多,但是用的舒服的,方便的,寥寥无几,这就是导致了市面上为什么产品有很多,但是真正做的好的,就那么几款。 相比于直播,音频视频通话可以更直观的让用户接收或者发送,甚至是参与到直播的氛围当中,今天,我们就用 声网Agora 的音频通话功能,实现一个简单的音频通话功能(...

weixin_34014277的博客 595

Unity实时音视频通话集成实战:从音量控制到性能优化的完整指南

实时音视频通信是现代应用的核心功能,其底层依赖于音频信号处理、网络传输与多平台渲染的协同。在技术原理上,通过调节音频信号的增益与衰减,结合回声消除、噪声抑制等算法,确保通话的清晰与稳定。对于开发者而言,掌握这些技术能显著提升社交、教育、元宇宙等场景下的用户体验。在Unity引擎中集成第三方音视频SDK时,关键在于理解音频管线的分层架构,并实现原生插件与引擎的高效交互。本文聚焦于Unity项目中的音视频通话集成,详细解析了如何通过AdjustRecordingSignalVolume等API进行精细化的音量控

weixin_33978722的博客 315

App实现语音通话的高效方案:WebRTC与声网SDK的实战对比

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94959801的博客 261

Unity实战篇 | 接入 声网SDK 实现 音频通话 —— 自己动手做一个 语音聊天房

- 最近正好在网上看到`声网`,然后就顺道了解到了声网这个平台,发现声网的功能还真挺多呢 - 也是一个兼容几十种平台的大公司啊,到现在才了解到,也算是相见恨晚~ - 所以就赶紧来用 `Unity` 结合 `声网` 做一个语音聊天房! - 我也是第一次接入声网的SDK,可能有些地方不是很熟练,正好写一篇文章来记录学习一下~

努力前行,总会成为自己心中的那道光 1万+

OI 生涯回忆录 《Pilgrimage》

前言 于 NOI2020 后写下本文。 本文简单提及了在写作时尚能回忆起来的,在我的 OI 生涯中对我的影响重大的人、事、比赛等。 写作本文,旨在在回忆允许的范围内,对 OI 生涯进行一定程度上的梳理,总结。 开端 入门 我最早接触计算机程序设计,是在小学。 那时候,我的数学成绩不错,就被老师推荐去学习编程。 就这样,我在局前街小学的何静老师的指导下,走上了编程的道路。 小学时的编程,与其说是 “竞赛” ,不如说是 “兴趣班” 。 当时,包括我在内,很多小孩子天性是浮躁的。支撑我对着无聊的代码学下去的,并不

cz_xuyixuan的博客 1万+

Android多人视频聊天应用的开发(一)快速集成

自从2016年,鼓吹“互联网寒冬”的论调甚嚣尘上,2017年亦有愈演愈烈之势。但连麦直播、在线抓娃娃、直播问答、远程狼人杀等类型的项目却异军突起,成了投资人的风口,创业者的蓝海和用户的必装App,而这些方向的项目都有一个共同的特点——都依赖视频通话和全互动直播技术。声网Agora.io的SDK让App和网站都可以实现高质量的音频通话、视频通话、全互动直播。我试着通过该SDK...

weixin_33847182的博客 1054

基于PINN的一个简单的求解偏微分方程实例

本人是做化工模拟的一名学生,最近在学习PINN(Physics-Informed Neural Networks,物理信息神经网络)对管道动力学进行建模研究,PINN由于其对机理与数据的良好兼顾性非常热门,本文是作者对PINN入门研究过程的一个练手小题目,main code也是作者代码是基于pytorch2.6.0写的,发上来供各位参考,欢迎研究管道动力学和PINN的小伙伴一起讨论~

weixin_64491760的博客 1740

Android实现多端语音通话的几种方式:技术选型与性能优化实战

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94960132的博客 725

零差云控关节模组:EtherCAT+preempt-RT实现微秒级同步

关节模组是协作机器人、外骨骼与高精度服务机器人的核心执行单元,其性能瓶颈常在于多轴运动的时序一致性与实时闭环能力。实现‘零差’同步依赖于确定性通信(如EtherCAT)与硬实时操作系统支持(如Linux preempt-RT),前者保障指令与状态在微秒级时间戳下全局对齐,后者消除内核调度抖动,使PID控制、电流采样、编码器反馈等关键路径具备纳秒级可预测性。技术价值体现在相位偏差<±0.01°、端到端控制周期稳定1ms、连续运行温漂<±1.2℃等工程指标,广泛应用于力控装配、康复训练、远程遥操作等对动态精度与

weixin_34192816的博客 1197

告别信号毛刺!手把手教你用ADS和IBIS-AMI模型搞定PCIe Gen3眼图仿真

本文详细介绍了如何使用Keysight ADS和IBIS-AMI模型进行PCIe Gen3眼图仿真,解决高速信号传输中的信号质量问题。从仿真环境搭建、S参数预处理到眼图优化与故障排除,提供了一套完整的工程实践指南,帮助工程师提升PCIe Gen3接口的信号完整性。

weixin_28366053的博客 370

unity接入声网音频sdk

接入音频sdk

weixin_50702814的博客 1725

SAP生产订单(创建-下达-发料-报工-入库)全流程及反向流程

SAP创建下达报工入库发料以及取消发料取消入库,批量下达删除关闭,生产订单出入库查询和状态更改查询记录

weixin_38974136的博客 2万+

关于一个小菜鸟集成声网SDK的磕磕碰碰

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33860553的博客 371

OAI数据集申请与实战:从权限获取到医学影像分析应用

本文详细介绍了OAI数据集的申请流程与医学影像分析实战应用。从NDA账户注册、数据下载技巧到骨盆X光关键点检测的完整实现,帮助医学研究者高效利用这一权威骨关节炎数据集。特别分享使用Pei Y标注数据训练U-Net模型的经验,包括预处理、注意力机制优化等实用技巧。

weixin_30275415的博客 479

PLC与变频器联动控制:从开关量、模拟量到通讯的接线与编程实战

在工业自动化系统中,电机调速控制是核心需求之一,其关键在于实现可编程逻辑控制器(PLC)与变频器之间的可靠联动。其基本原理是通过PLC输出控制信号,由变频器接收并驱动电机按设定速度运行。这项技术的核心价值在于实现电机的软启停、精确调速与节能控制,广泛应用于风机、水泵、传送带及精密张力控制等场景。其中,开关量控制以其接线简单、抗干扰能力强的特点,成为基础且可靠的方案;而模拟量控制则能实现无级平滑调速,满足更高精度的工艺要求。本文以西门子、三菱等主流品牌为例,深入解析了这两种主流控制方式的硬件接线、参数设置与梯

1269

凌晨三点被欧洲用户吵醒后,我决定换个方案

换声网SD-RTN™网络之前,我其实是拒绝了一个吹牛的供应商。但EBO Air 2 Plus的案例说服了我,全球160多个国家,80多万用户,集成了声网对话式AI引擎和双向视频通话,跑了这么久没出大事。以前我每周要处理二三十个语音交互投诉,现在一个月就几个,还都是用户自家WiFi的问题。去年我们智能家居出海,北美用户投诉延迟高,东南亚用户说网络波动就断连,我两头受气,白天跟研发团队扯皮,凌晨三点被用户电话吵醒,整个人都快神经衰弱了。没有凌晨三点的电话,从救火队员到躺平运维,声网让我实现了这个不可能的梦想。

2601_95901817的博客 182

基于Python的房地产评估数据抓取与分析 —— 房价走势与市场报告

在房地产行业中,了解和分析房产价格的变化趋势、各个地区的房价差异以及市场评价报告,可以帮助投资者、购房者以及政策制定者做出更加明智的决策。本文介绍了如何使用Python爬虫技术抓取房地产平台上的房产评估报告、价格走势等数据,并对抓取的数据进行分析。通过这些技术,您可以自动化抓取房地产平台的数据,分析房价走势,获取市场报告,为房地产投资决策提供数据支持。假设我们要从链家网抓取某个房产的价格、房产描述以及历史成交价格,首先需要获取目标房产页面的URL,并发送HTTP请求。伪装为常见浏览器,避免被识别为爬虫。

2201_76125261的博客 847

vue视频通话(Agora声网)

vue视频通话声网Agora

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生 5714

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

声网 SDK 接入以及音视频通话应用开发指南

1. 简介 在如今的移动互联网时代,音视频相关应用已经深入到我们日常生活的方方面面。 而在它背后的音视频技术也是非常成熟了,短视频编辑、带货直播、视频语音通话等应用形式无不体现着音视频技术给我们生活带来的便利。 而这次就去实际体验一下,接入声网的音频 SDK ,并打造一个音视频通话应用。 2. 账户注册与项目创建 首先要做的就是在声网(https://www.agora.io/cn)上注册账号,并完成实名认证。 登录之后就进到管理界面了,在左侧有一系列选项可以操作,直接进到项目管理,创建我们的 Video

音视频开发进阶 4521

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: 视频流加载播放
下一篇: Vue结合高德地图(AMap)Gis开发
蜗牛与藤曼
博客等级 码龄9年 1万+粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值