使用ZEGO SDK零基础搭建iOS语音聊天应用

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:54   2261   0

今年以来,语音聊天室玩法兴起,众多社交泛娱乐平台已纷纷跟进。音视频云服务商即构科技提供了语音聊天室解决方案,包含语音连麦、麦位管理、一站式内容审核等整套功能,并提供了体验Demo及免费源码,让开发者可以零基础快速集成。

上一篇我们已经介绍过了Android端的实现方式,下面我们来分享iOS端的实现流程。

语音聊天房应用的实现,主要由业务系统和移动/Web 客户端组成。其中业务系统需要实现房间管理、麦位管理、音频流和麦位关联关系管理等功能,客户端需要实现登录/登出房间、拉流/停止拉流、上麦推流/停止推流下麦等功能,还可以根据需要使用房间信息通道实现 IM 功能。

iOS端的功能说明及实现流程与Android端无太大差别,可点击第一篇的内容查看

使用ZEGO SDK零基础搭建Android语音聊天应用

下面具体来看操作步骤~

1、创建/销毁引擎

在使用 Express Audio SDK 之前,需要初始化 Express Audio SDK。由于初始化操作 SDK 内部处理的流程较多,建议开发者在 App 启动时进行。

  • 创建引擎”
// 填写 appID 和 appSign
unsigned int appID = ;  // 请通过官网注册获取,格式为:1234567890
NSString *appSign = ;  //请通过官网注册获取,格式为:@"0123456789012345678901234567890123456789012345678901234567890123"(共64个字符)
// 创建引擎,使用测试环境,通用场景接入,并注册 self 为 eventHandler 回调代理
// 不需要注册回调的话,eventHandler 参数可以传 nil,后续可调用 "-setEventHandler:" 方法设置回调代理
[ZegoExpressEngine createEngineWithAppID:appID appSign:appSign isTestEnv:YES scenario:ZegoScenarioGeneral eventHandler:self];
  • 销毁引擎
[ZegoExpressEngine destroyEngine:nil];

2、设置事件回调

可以根据场景需要,在初始化 SDK 后监听想要关注的事件通知,比如用户加入房间,房间流更新等等。

// 遵循 ZegoEventHandler 协议以处理您关心的事件回调
@interface ViewController () <ZegoEventHandler>
// ······
@end
@implementation ViewController
// ······
// 举例:监听房间内流数量变更的通知
- (void)onRoomStreamUpdate:(ZegoUpdateType)updateType streamList:(NSArray<ZegoStream *> *)streamList roomID:(NSString *)roomID {
    // ······
}
@end

3、登录/登出房间

用户上麦推流之前,需要先登录房间,在收到登录房间成功的回调后可以直接调用 loginRoom 接口进行推拉流操作。相关源码片段演示如下,仅供参考:

// 创建用户对象
ZegoUser *user = [ZegoUser userWithUserID:@"user1"];
// 开始登陆房间
[[ZegoExpressEngine sharedEngine] loginRoom:@"room1" user:user];
// 登出房间
[[ZegoExpressEngine sharedEngine] logoutRoom:@"room1"];
 

4、开始/停止推流

调用 startPublishingStream 接口,可以向远端用户发送本端的音视频流。如果不需要继续推流,请调用 stopPublishingStream 停止推流。

// 开始推流
[[ZegoExpressEngine sharedEngine] startPublishingStream:@"stream1"];
// 停止推流
[[ZegoExpressEngine sharedEngine] stopPublishingStream];
 

5、拉流/停止拉流

调用 startPlayingStream 进行拉流,如果不需要继续拉流,请调用 stopPlayingStream 停止拉流。

// 开始拉流
[[ZegoExpressEngine sharedEngine] startPlayingStream:@"stream1"];
// 停止拉流
[[ZegoExpressEngine sharedEngine] stopPlayingStream:@"stream1"];
 

以上就是基于ZEGO SDK 实现iOS语音聊天应用的流程,即构还提供了免费源码,让开发实现2小时快速集成上线,扫码即可体验Demo,欢迎进入 ZEGO官网 获取源码。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP