前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零基础搭建iOS语音聊天室平台源码

零基础搭建iOS语音聊天室平台源码

作者头像
云豹科技程序员
修改2021-05-24 18:00:24
1.4K0
修改2021-05-24 18:00:24
举报

语音聊天室平台源码玩法兴起,众多社交泛娱乐平台已纷纷跟进。

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

下面具体来看操作步骤~

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

创建引擎

代码语言:javascript
复制
// 填写 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];

销毁引擎

代码语言:javascript
复制
[ZegoExpressEngine destroyEngine:nil];

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

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

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

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

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

代码语言:javascript
复制
// 开始推流
[[ZegoExpressEngine sharedEngine] startPublishingStream:@"stream1"];
// 停止推流
[[ZegoExpressEngine sharedEngine] stopPublishingStream];

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

代码语言:javascript
复制
// 开始拉流
[[ZegoExpressEngine sharedEngine] startPlayingStream:@"stream1"];
// 停止拉流
[[ZegoExpressEngine sharedEngine] stopPlayingStream:@"stream1"];

以上就是iOS语音聊天室平台源码的搭建流程

本文系转载,前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com