语音聊天室平台源码玩法兴起,众多社交泛娱乐平台已纷纷跟进。
语音聊天室平台源码的实现,主要由业务系统和移动/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语音聊天室平台源码的搭建流程