标签:
所需工具yun2win实时音视频IOS端sdk
下载地址:https://github.com/yun2win/yun2win-sdk-iOS/tree/master/Y2W_IM_SDK
yun2win官网:www.yun2win.com
Y2W_RTC_SDK集成多种实时通讯能力:
Y2WRTCManager *manager = [[Y2WRTCManager alloc] init];
manager.token = token;
manager.memberId = uid;
manager.memberName = name;
manager.memberAvatarUrl = avatarUrl;
[manager createChannel:^(NSError *error, Y2WRTCChannel *channel) {
// 获取到频道对象,根据业务需求直接使用或跳转页面使用
}];
Y2WRTCManager *manager = [[Y2WRTCManager alloc] init];
manager.channelId = channelID;
manager.token = token;
manager.memberId = uid;
manager.memberName = name;
manager.memberAvatarUrl = avatarUrl;
[manager getChannel:^(NSError *error, Y2WRTCChannel *channel) {
// 获取到频道对象,根据业务需求直接使用或跳转页面使用
}];
发起方创建频道后,需要在上层业务自行转发channelID,以便加入同一频道。
channel.delegate = self;
[channel join];
/**
* 开启音频连接
*/
[channel openAudio];
/**
* 开启扬声器
*/
[channel setSpeaker:YES];
/**
* 开启视频连接
*/
[channel openVideo];
/**
* 切换到后置摄像头
*/
[channel useBackCamera:YES];
/**
* 暂不支持移动端发起,接收时会进行回调
*/
- (void)channel:(Y2WRTCChannel *)channel didOpenScreenOfMember:(Y2WRTCMember *)member;
用于发起或加入频道
@property (nonatomic, copy) NSString *channelId; // 频道ID,发起方会自动获取,加入时需要填入发起方获取的ID
@property (nonatomic, copy) NSString *memberId; // 频道连接中的成员ID
@property (nonatomic, copy) NSString *token; // 用户token
/**
* 创建并加入频道
*
* @param block 发起失败会返回错误对象,成功返回频道对象,使用此对象进行操作和监听回调
*/
- (void)createChannel:(void(^)(NSError *error, Y2WRTCChannel *channel))block;
/**
* 加入频道
*
* @param block 加入失败会返回错误对象,成功返回频道对象,使用此对象进行操作和监听回调
*/
- (void)getChannel:(void(^)(NSError *error, Y2WRTCChannel *channel))block;
用于管理频道
@property (nonatomic, copy) NSString *channelId; // 频道ID
@property (nonatomic, weak) Y2WRTCMember *currentMember; // 当前成员
@property (nonatomic, weak) id<Y2WRTCChannelDelegate> delegate; // 委托对象
/**
* 获取频道内的当前成员
*
* @return 成员数组
*/
- (NSArray<Y2WRTCMember *> *)getMembers;
/**
* 加入频道
*/
- (void)join;
/**
* 离开频道
*/
- (void)leave;
调用join方法时也会触发- (void)channel:(Y2WRTCChannel *)channel didJoinMember:(Y2WRTCMember *)member回调。
/**
* 开启音频连接
*/
- (void)openAudio;
/**
* 关闭音频功能(关闭后无法发送和接受音频)
*/
- (void)closeAudio;
/**
* 是否开启扬声器
*
* @param speaker bool
*/
- (void)setSpeaker:(BOOL)speaker;
/**
* 当前是否使用的扬声器
*
* @return bool
*/
- (BOOL)speakerEnabled;
/**
* 是否设置麦克风静音
*
* @param mute bool
*/
- (void)setMicMute:(BOOL)mute;
/**
* 麦克风是否静音状态
*
* @return bool
*/
- (BOOL)micMuteEnabled;
/**
* 开启视频功能
*/
- (void)openVideo;
/**
* 关闭视频功能(关闭后无法发送和接受视频)
*/
- (void)closeVideo;
/**
* 切换前后摄像头
*
* @param use YES为使用后置摄像头
*/
- (void)useBackCamera:(BOOL)use;
/**
* 当前是否使用的后置摄像头
*
* @return YES为后置摄像头,NO为前置摄像头
*/
- (BOOL)isUseBackCamera;
Y2WRTCChannel的委托对象需要实现的协议方法,用于频道内事件的回调
/**
* 有成员加入此频道
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didJoinMember:(Y2WRTCMember *)member;
/**
* 有成员离开此频道
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didLeaveMember:(Y2WRTCMember *)member;
/**
* 有成员开启了音频
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didOpenAudioOfMember:(Y2WRTCMember *)member;
/**
* 有成员关闭了音频
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didCloseAudioOfMember:(Y2WRTCMember *)member;
/**
* 有成员关闭或开启了麦克风
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didSwitchMuteAudioOfMember:(Y2WRTCMember *)member;
/**
* 音频连接出现错误
*
* @param channel 频道对象
* @param error 错误对象
*/
- (void)channel:(Y2WRTCChannel *)channel onAudioError:(NSError *)error;
/**
* 有成员开启了视频
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didOpenVideoOfMember:(Y2WRTCMember *)member;
/**
* 有成员关闭了视频
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didCloseVideoOfMember:(Y2WRTCMember *)member;
/**
* 有成员关闭或开启了摄像头
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didChangeVideoMuteFromMember:(Y2WRTCMember *)member;
/**
* 视频连接出现错误
*
* @param channel 频道对象
* @param error 错误对象
*/
- (void)channel:(Y2WRTCChannel *)channel onVideoError:(NSError *)error;
/**
* 有成员开启了屏幕共享
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didOpenScreenOfMember:(Y2WRTCMember *)member;
/**
* 有成员关闭了屏幕共享
*
* @param channel 频道对象
* @param member 成员对象
*/
- (void)channel:(Y2WRTCChannel *)channel didCloseScreenOfMember:(Y2WRTCMember *)member;
/**
* 屏幕共享连接出现错误
*
* @param channel 频道对象
* @param error 错误对象
*/
- (void)channel:(Y2WRTCChannel *)channel onScreenError:(NSError *)error;
成员对象,管理成员的状态并提供视频数据
@property (nonatomic, copy, readonly) NSString *uid; // 用户ID
@property (nonatomic, retain, readonly) Y2WRTCVideoTrack *videoTrack; // 视频数据流
@property (nonatomic, retain, readonly) Y2WRTCVideoTrack *screenTrack; // 屏幕数据流
@property (nonatomic, assign, readonly) BOOL audioOpened; // 是否开启了音频连接
@property (nonatomic, assign, readonly) BOOL audioMuted; // 是否开启了静音(关闭麦克风)
@property (nonatomic, assign, readonly) BOOL videoOpened; // 是否开启了视频连接
@property (nonatomic, assign, readonly) BOOL screenOpened; // 是否开启了屏幕共享连接
管理视频流数据,直接给渲染器的videoTrack属性赋值即可。
渲染器,用于渲染视频,直接给videoTrack属性赋值即可。
/**
* 当前使用的视频流管理器
*/
@property (nonatomic, weak) Y2WRTCVideoTrack *videoTrack;
/**
* 委托对象
*/
@property (nonatomic, weak) id<Y2WRTCVideoViewDelegate> delegate;
/**
* 视频内容的填充模式
*
* 默认 Y2WRTCVideoViewFillModeScaleAspectFill
*/
@property (nonatomic, assign) Y2WRTCVideoViewFillMode fillMode;
/**
* 截图
*/
@property (nonatomic, weak) UIImage *snapshot;
/**
* 视频内容分辨率发生变化,返回最新大小
*
* @param videoView 触发此回调的渲染器对象
* @param size 尺寸
*/
- (void)videoView:(Y2WRTCVideoView *)videoView didChangeVideoSize:(CGSize)size;
标签:
原文地址:http://www.cnblogs.com/yun2win/p/5765746.html