1V1实时音视频常见问题
1、音视频通话有没有录制的服务?
环信SDK在3.6.0以后的版本,提供了环信服务器端录制音视频的服务,在发起音视频通话时可以选择是否开启录制: 发起实时通话
获取音视频通话录制文件文档: 获取录制文件
2、iOS端如何实现聊天页面内显示音视频通话的时长?
在此回调中做开始计时
//通话通道建立完成,用户A和用户B都会收到这个回调
- (void)callDidConnect:(EMCallSession *)aSession;
在此回调中结束计时,然后将通话时间用户通知发出去,然后在聊天页面内监听这个通知,插入一条通话时间的文本消息。
//用户A或用户B结束通话后,双方会收到该回调
- (void)callDidEnd:(EMCallSession *)aSession
reason:(EMCallEndReason)aReason
error:(EMError *)aError;
插入消息: 插入消息
3、用户离线怎么接收音视频通话?
参考文档: 离线发推送
4、iOS音视频通话如何添加提示音?
(1)在线时:
可以在监听音视频相关的代理方法里播放、停止播放本地音频文件(或者系统提示音)。 实时通话相关的回调
代理方法都在 EMCallManagerDelegate.h 这个头文件内。比如在收到音视频通话请求的代理方法内播放提示音,在通话请求建立成功以及在通话结束时(自己挂断、对方挂断)时停止播放提示音。这个可以针对自己的场景实现相关播放和停止播放提示音的逻辑。
(2)离线时:
发送方在 - (void)callRemoteOffline:(NSString *)aRemoteName 代理方法里给接收方发送文本消息时,自定义推送提示音,参考文档:自定义推送提示音
多人音视频会议常见问题
1、如何实现收到多人音视频会议邀请直接进入会议页面,不需要点击邀请消息再进入会议?
以环信iOS demo中的代码为示例,demo是在点击会议邀请消息时在进入会议的,那么在接收消息的回调里面判断出来是会议邀请消息,直接根据消息中的会议内容加入会议,进入会议音视频页面就可以了。 聊天页面内的接收消息的回调方法:
- (void)messagesDidReceive:(NSArray *)aMessages{}
demo中点击会议邀请消息加入会话的方法封装在截图中标注的方法内,这个看下内容方法如何实现的,可以自己在接收消息的回调方法里面自己去操作。
2、怎么获取会议中的成员列表
成员加入会议后,代理方法会携带上多人会议成员对象aMember,需要开发者解析然后自己存储、维护
//有人加入会议
- (void)memberDidJoin:(EMCallConference *)aConference
member:(EMCallMember *)aMember
{
}
3、怎么获取多人音视频会议成员个数?
[[EMClient sharedClient].conferenceManager getConference:@"9301839181" password:@"123" completion:^(EMCallConference *aCall, EMError *aError) {
// 获取会议成员个数
NSInteger memCount = aCall.memberCount;
}];
4、用户离开会议不知道是主动离开的还是用户离线后被动离开
如果对方是主动离开会议的,给会议的成员发条cmd消息,标记是主动离开的
如果没有收到cmd消息而监听到有人离开,那就说明不是主动离开的
通过监听此回调即可:
/*!
* \~chinese
* 有人离开会议
*
* @param aConference 会议实例
* @param aMember 离开的用户
*
* \~english
* Someone leaved the conference
*
* @param aConference EMConference instance
* @param aMember The leaved user
*/
- (void)memberDidLeave:(EMCallConference *)aConference
member:(EMCallMember *)aMember;
—-
美颜实现Demo
下面是基于环信 IM Demo 集成相芯美颜SDK的 Demo, 可以参考下。
因为证书目前是短期的,只有代码参考: https://github.com/Faceunity/FUEaseIMDemoDroid https://github.com/Faceunity/FUEMiOSDemo