客户端实现(iOS)

本文档为您展示通过 SDK 实现语音聊天室场景的相关步骤,帮助您在业务中实现麦位管理、低延时语音互动、文字聊天等 IM 和音视频通话 2.0 在语音聊天场景下的相关能力。

前提条件

已在控制台创建应用,并获取了应用对应的 App Key。

已成功开通 IM 即时通讯产品的聊天室功能、音视频通话 2.0 产品。

聊天室功能需单独开通,若有需要,请联系您的对应销售或技术支持人员。

操作步骤

集成 SDK

请参考下表,将相应的 SDK 或服务集成到您的项目中。

产品

SDK 下载

集成文档

创建聊天室

调用创建聊天室服务端 API 接口,创建聊天室。

调用初始化队列服务端 API 接口,初始化队列。

调用创建房间服务端 API 接口,创建并维护多人音频房间。

您也可以通过客户端接口创建多人音频房间。

初始化 SDK

初始化并登录 IM。

您可以参考快速开始,完成 IM SDK 初始化,并配置登录方式,登录 IM。

调用进入聊天室接口加入聊天室。

您可以根据对音质、声道、场景等的不同需求,选择不同的音频属性,获得最佳实时互动效果。

// 在初始化之前设置

[[NERtcEngine sharedEngine] setAudioProfile:profile scenario:scenario]

初始化音视频通话 2.0 SDK。

您可以参考快速入门初始化音视频通话 2.0 SDK。

@interface Myapp ()

...NERtcEngine *coreEngine = [NERtcEngine sharedEngine]; NERtcEngineContext *context = [[NERtcEngineContext alloc] init];

context.engineDelegate = self;

context.appKey = AppKey;

[coreEngine setupEngineWithContext:context];

...

在指定的通话界面中实现监听。

注册 NERtcEngineDelegate,并实现监听方法。

房间内操作

- (int)joinChannelWithToken:(NSString *)token

channelName:(nullable NSString *)channelName

myUid:(uint64_t)uId

completion:(NERtcJoinChannelCompletion)completion;

@end

注意:

如果您已调用服务端 API 创建了房间,客户端可以直接加入房间,若没有已存在的房间,SDK会自动创建。

uid 是您自行生成的一个 long 类型的数据,作为用户唯一标识,这个 uid 需要在音频房间内唯一。后续的房间内用户相关的回调均会绑定这个 uid,但是它与聊天室的 accid 是两套体系。您需要在业务层维护业务绑定关系。

在语音聊天室中开始多人语音。

观众加入房间之后,需要先主动关闭自己的音频采集,然后在上麦成功之后打开即可。

- (int)enableLocalAudio:(BOOL)enabled

麦序管理。

连麦者通过发送点对点自定义系统通知,主播端同意(或者代码直接同意实现鉴权),然后将连麦者添加到队列元素中;或者主播拒绝连麦申请,并将这个结果通过自定义系统通知发送回连麦申请方。

申请方收到同意的自定义系统通知之后,本地调用 enableLocalAudio 即可参与互动。业务层需要处理 UI 展示的逻辑。

当聊天室队列发生更新时,会向聊天室内所有成员下发一条聊天室通知消息,客户端监听后做相应的 UI 处理。

退出房间

下麦。

根据上麦的方式,对应的取出聊天室队列中自己的元素。这个操作也会触发队列变更通知。

//UI 挂断按钮事件- (IBAction)onHungupAction:(UIButton *)sender {

[NERtcEngine.sharedEngine leaveChannel];

[self dismiss];

}

在收到 onNERtcEngineDidLeaveChannelWithResult 之后执行:

- (void)dealloc {

[NERtcEngine destroyEngine]; //销毁实例

}

前进阶功能提条件

混音及音效

加入频道后,调用 startAudioMixingWithOption 方法,可以播放音乐文件,实现播放背景音乐的功能,也可以播放音效文件,实现鼓掌、欢呼、尖叫等氛围音效果。离开频道前调用 stopAudioMixing 方法,结束播放。

耳返

调用 enableEarback 方法开启主播的耳返功能。

通话质量监测

使用 NERtcEngineMediaStatsObserver 回调,将关键的音视频状况、网络状况、设备状态的相关指标实时回调给APP应用层,监测通话的整体体验。

本篇文档内容是否对您有帮助?

有帮助

我要吐槽

如果遇到产品相关问题,您可 提交工单 或 在线客服 寻求帮助。

您的改进建议

×

问题类型

内容错误

内容没更新

描述不清

链接有误

步骤不完整

内容缺失(缺少代码/示例)

其他

更多建议

请输入您的建议或问题(至少5个字符,至多500个字符)

联系方式

标记内容

同时提交标记内容

提交

此文档对你是否有帮助

×

有帮助

我要吐槽

×

反馈成功

非常感谢您的反馈,我们会继续努力做得更好。

ios开发 多人语音聊天_客户端实现(iOS)相关推荐

  1. ios开发 多人语音聊天_在 Unity 多人游戏中实现语音对话

    我们曾经不止一次为大家分享过游戏中的实时音视频,例如怎么实现游戏中的听声辨位.狼人杀游戏中的语音聊天挑战等.基本上,都是从技术原理和 Agora SDK 出发来分享的.这次我们换一个角度.我们将从 U ...

  2. ios开发 多人语音聊天_手游语音市场的现状、机遇与挑战

    文/手游那点事小鱼原创 2014年持续火热的手游市场成就了一大批企业的上市梦,同时也在大环境下产生了对系列手游增值服务的需求.基于玩家对手游社交性的需求,以及借鉴传统端游,页游中成功的社交体系,手游市 ...

  3. ios开发 多人语音聊天_微信“暗黑模式”正式上线!语音界面大改,新增贴心“群工具”...

    微必知科技资讯(winbz.com):3月9日,微信团队对外预热:"为了优化用户体验,微信与苹果达成合作,共同探索微信在iOS系统的暗黑模式体验,目前该功能已完成开发,将有望在下一个新版本中 ...

  4. ios开发 多人语音聊天_iOS-实现多人语音聊天室-场景实践-音视频通话2.0-网易云信开发文档...

    云信多人语音聊天室(iOS) 这个开源示例项目演示了如何快速集成NERTC SDK,快速实现多人语音聊天室功能. 功能介绍 该示例项目中包含了以下功能: 创建语音聊天室: 使用文字或语音进行多对多互动 ...

  5. ios开发 多人语音聊天_iOS 新手集成单聊、群聊、语音和视频通话的简述

    最近项目中有涉及到即时通讯的功能,所用到的是环信3.1.5的sdk.下面就开始介绍其过程: (1)集成环信SDK: pod:pod 'HyphenateFullSDK' 手动:因为我们要使用到语音和视 ...

  6. ios开发 多人语音聊天_iOS语音通话功能实现流程(实时语音通话二)

    上一篇我们讲述了iOS语音通话SDK集成指引,今天就来看下iOS下实时语音通话功能实现的流程.实时语音场景的典型之一是同一会话中的成员进行实时语音对话. 以 2 人间的实时语音为例,主要流程如下: 请 ...

  7. 开发最佳实践|集成声网 iOS SDK,实现语音聊天室

    大家好,我是声网 RTE 开发者社区作者 @小曾同学.本次主要分享集成声网SDK实现语音聊天室. 01 前言 在日常生活中经常会看到一些聊天场景,比如在线KTV.连麦开黑.多人相亲.娱乐聊天室等应用场 ...

  8. Docker快速搭建TeamSpeak多人语音聊天服务器

    Docker快速搭建TeamSpeak多人语音聊天服务器 第一步执行: git clone https://github.com/overshard/docker-teamspeak cd docke ...

  9. [置顶] XMPPFrameWork IOS 开发(六)聊天室

    原始地址:XMPPFrameWork IOS 开发(六)聊天室 聊天室 [cpp]  view plain copy print ? //初始化聊天室 XMPPJID *roomJID = [XMPP ...

最新文章

  1. 【Python】Pandas数据挖掘与分析时的常用方法
  2. 第二届Byte Cup来袭,赢得2万美元奖金,登上字节跳动面试直通车
  3. java 字符串子串_java实现字符串匹配求两个字符串的最大公共子串
  4. python将一个列表里面的某类元素取出来_03|Python列表常见操作
  5. 在nocdb转pdb的时候遇到小bug
  6. kali创建python脚本_kali下编译学习python3
  7. 在Linux系统中允许或拒绝SSH访问特定用户或组的方法
  8. ASP.NET MVC Html.BeginForm用法1
  9. [...]ubuntu rvm rails 安装完之后消失的解决方法
  10. JM8.6之erc_api.c文件初探
  11. Siemens M65...
  12. 使用APICloud AVM多端框架开发app通讯录功能
  13. Helio for mac(音乐创作工具)
  14. 隐私计算在普惠金融领域的应用研究
  15. 从python入门到人生巅峰
  16. 软件著作权转让的流程是怎么样的
  17. 小样本点云深度学习库_基于点云深度学习的点云数据集制作系统及方法与流程...
  18. python自动做表格_用Python做自动化的表格处理(批量智能替换) - Python趣用之法2...
  19. TensorRT cublasStatus == CUBLAS_STATUS_SUCCESS
  20. Python用pyexiv2读写图片元数据(EXIF、IPTC、XMP)

热门文章

  1. 夹缝中的中小开源项目,融资之路该如何走?
  2. 什么是数字孪生?终于有人讲明白了
  3. 谷歌不是 Web 界的上帝!
  4. JavaScript 将死?
  5. 达摩院再获自动驾驶权威测评第一,车辆可识别“厘米级”障碍物
  6. 小米冲击高端,这次能否成功?
  7. 一文详解 Java 的几把 JVM 级锁
  8. 5G 2.0 的最新动向
  9. 微软推出新逆天开源语言,告别 for 循环,提高开发效率!
  10. 腾讯痛下杀手,是时候让区块链回归技术和应用的本质了!