美文网首页
环信集成纯视频聊天功能

环信集成纯视频聊天功能

作者: 的的可可 | 来源:发表于2020-06-12 21:53 被阅读0次

    条件
    1:iOS_IM_SDK_V3.6.8
    2:Xcode(11.5)
    首先去环境注册app获取到appkey,然后集成SDkK:环信DSK集成.

    然后去下载环信的demo:环信Demo下载.
    下载下来大概是这个鬼样子

    demo
    点进去。如果刚是pod集成(推荐),除了箭头所指的文件夹,其他都用不上;
    打开箭头所指文件里面的工程
    然后把下图中红框的部分拖入自己工程。
    拖入自己工程
    在然后将下图内容copy到自己的pch文件中
    截屏2020-06-12下午9.29.37.png
    注意:如果你的pch中还有其他头文件,copy的这个最好写在最前面。
    然后点开你的AppDelegate.m在
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    

    方法中这样写

    //AppKey替换成你的在环信上注册的appKey
    EMOptions *options = [EMOptions optionsWithAppkey:@"AppKey"];
        // apnsCertName是证书名称,可以先传nil,等后期配置apns推送时在传入证书名称,后面介绍推送,这里可以不写
        options.apnsCertName = @"nil";
        EMError *error = [[EMClient sharedClient] initializeSDKWithOptions:options];
        if (!error) {
            PHlog(@"环信初始化成功");
        }
    //环信注册和登录,这里就写在了AppDelegate.m中,实际根据个人项目情况写在合适的地方
                [[EMClient sharedClient] registerWithUsername:self.userModel.mobile password:@"sslz120" completion:^(NSString *aUsername, EMError *aError) {
                    if (!aError) {
                        NSLog(@"注册成功");
                        // 传入在应用(appkey)下注册的IM用户user1,密码123,用于登录环信服务器
                        [[EMClient sharedClient] loginWithUsername:"user1" password:@"123" completion:^(NSString *aUsername, EMError *aError) {
                                if (!aError) {
                                    NSLog(@"登录成功");
                                    [DemoCallManager sharedManager];//DemoCallManager类能收到,发起视频通知的关键
                                } else {
                                    NSLog(@"登录失败的原因---%@", aError.errorDescription);
                                }
                            }];
    

    最后在你需要发起视频的地方发起通知

    //对方的环信账号user2
    [[NSNotificationCenter defaultCenter] postNotificationName:CALL_MAKE1V1 object:@{CALL_CHATTER:"user2", CALL_TYPE:@(EMCallTypeVideo)}];
    

    这样就能发起视频了。当然,这里由于还没有集成推送,所以只有对方在线的时候才能接收到你发起的视频。
    然后如果不想使用环信原生的视频界面,就可以修改EM1v1CallViewController里面的内容,自定义你的视频界面。
    我集成后,发现一个小问题,就是当我发起视频后,然后挂断,对面能正常挂断,但是我一直处于拨打界面。
    所以我在DemoCallManager里面的方法

    - (void)callDidEnd:(EMCallSession *)aSession
                reason:(EMCallEndReason)aReason
                 error:(EMError *)aError
    

    中返回挂断原因的位置家了dismiss的语句

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
                UIViewController *rootViewController = window.rootViewController;
                [rootViewController dismissViewControllerAnimated:YES completion:nil];
    

    不知道这样有什么弊端,希望有大佬指正。

    相关文章

      网友评论

          本文标题:环信集成纯视频聊天功能

          本文链接:https://www.haomeiwen.com/subject/emontktx.html