本篇文档介绍如何创建或加入多人视频通话。
Room 表示一个多人视频通话。多个用户可以加入同一个 Room 进行音视频通话。
加入 Room
加入 Room 前需要使用唯一的 roomId 创建 WDGRoom
对象实例,并使用 -[WDGRoom connect]
方法加入 Room。
WDGRoom *room = [[WDGRoom alloc] initWithRoomId:@"your-roomId" delegate:self]; |
WilddogVideoRoom 提供了海外服务器节点,使用 - [WDGRoom initWithRoomId:domain:delegate:]
方法在初始化时指定服务器地址:
WDGRoom *room = [WDGRoom alloc] initWithRoomId:@"your-roomId" domain:@"placeholder.wilddog.com" delegate:self]; |
提示:
如需使用海外节点,请联系客服 400-616-0980。
成功加入到 Room 后可以使用 -[WDGRoom publishLocalstream:]
或 -[WDGRoom subscribeRoomStream:]
方法发布或订阅媒体流。
离开 Room
使用 -[WDGRoom disconnect]
方法离开当前 Room。离开 Room 后将会结束当前音视频通话,停止发布本地媒体流并取消订阅远端媒体流:
[room disconnect]; |
处理 Room 事件
设置 WDGRoom 的代理 <WDGRoomDelegate> 用于处理 Room 的事件:
room.delegate = self; |
连接事件
实现代理方法 -[WDGRoomDelegate wilddogRoomDidConnect:]
,当客户端与服务器成功连接时,会触发该方法:
- (void)wilddogRoomDidConnect:(WDGRoom *)wilddogRoom { |
实现代理方法 -[WDGRoomDelegate wilddogRoomDidDisconnect:]
,当客户端与服务器断开连接时,会触发该方法:
- (void)wilddogRoomDidDisconnect:(WDGRoom *)wilddogRoom { |
媒体流通知事件
实现代理方法 -[WDGRoomDelegate wilddogRoom:didStreamAdded:]
,当房间中有远端媒体流加入时,会触发该方法:
- (void)wilddogRoom:(WDGRoom *)wilddogRoom didStreamAdded:(WDGRoomStream *)roomStream { |
实现代理方法 -[WDGRoomDelegate wilddogRoom:didStreamRemoved:]
,当房间中有远端媒体流断开时,会触发该方法:
- (void)wilddogRoom:(WDGRoom *)wilddogRoom didStreamRemoved:(WDGRoomStream *)roomStream { |
媒体流接收事件
实现代理方法 -[WDGRoomDelegate wilddogRoom:didStreamReceived:]
,当收到远端流的媒体数据时,会触发该方法:
- (void)wilddogRoom:(WDGRoom *)wilddogRoom didStreamReceived:(WDGRoomStream *)roomStream { |
错误事件
实现代理方法 -[WDGRoomDelegate wilddogRoom:didFailWithError:]
,当多人视频通话发生错误时,会触发该方法:
- (void)wilddogRoom:(WDGRoom *)wilddogRoom didFailWithError:(NSError *)error { |