设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1145|回复: 5

OnLocalVideoInit 在什么时候调用

[复制链接]

1

主题

3

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2018-3-22 18:01:31 | 显示全部楼层 |阅读模式
OnLocalVideoInit 没调用直接崩溃
-[AnyChat -[AnyChatDemo.VideoViewController OnLocalVideoInit:]: unrecognized selector sent to instance 0x103c533c0Demo.VideoViewController OnLocalVideoInit:]: unrecognized selector sent to instance 0x103c533c0

回复

使用道具 举报

发表于 2018-3-23 10:50:42 | 显示全部楼层
您可以发下我们的日志来分析下,您函数调用顺序是否有问题,另外您可以先直接跑下我们的demo看看是否正常。另外您可以参考我们的demo,调用UserCameraControl打开视频,调用UserSpeakControl打开音频。执行此操作之后,会自动调用OnLocalVideoInit方法
回复 支持 反对

使用道具 举报

1

主题

3

帖子

21

积分

新手上路

Rank: 1

积分
21
 楼主| 发表于 2018-3-26 08:34:21 | 显示全部楼层
没有什么分析日志
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AnyChatDemo.VideoViewController OnLocalVideoInit:]: unrecognized selector sent to instance 0x102c42d40'
*** First throw call stack:
(0x1844ab164 0x1836f4528 0x1844b8628 0x18de26188 0x1844b0b10 0x184395ccc 0x184ea72e4 0x18445377c 0x1844536fc 0x184452f84 0x184450b5c 0x184370c58 0x18621cf84 0x18dac95c4 0x100f22fa0 0x183e9056c)
libc++abi.dylib: terminating with uncaught exception of type NSException

我是对照你的demo写的,VideoViewController是复制你们的

    func startVideoChat(_ userID: Int32) {
        
        // 枚举本地视频采集设备
        let videoDeviceArr = AnyChatPlatform.enumVideoCapture()
        // 选择指定的视频采集设备
        if videoDeviceArr!.count > 1 {
            // 前置摄像头
            AnyChatPlatform.selectVideoCapture(videoDeviceArr!.object(at: 1) as! String)
        }
        // 本地设置
        AnyChatPlatform.setSDKOptionInt(BRAC_SO_LOCALVIDEO_OVERLAY, 1)
        AnyChatPlatform.setSDKOptionInt(BRAC_SO_LOCALVIDEO_ORIENTATION, Int32(self.interfaceOrientation.rawValue))
        // 采用 Overlay 模式
        AnyChatPlatform.userSpeakControl(-1, true)
        AnyChatPlatform.setVideoPos(-1, self, 0, 0, 0, 0)
        AnyChatPlatform.userCameraControl(-1, true)
        
        // 远程方设置
        AnyChatPlatform.userSpeakControl(userID, true)
        AnyChatPlatform.setVideoPos(userID, self.remoteVideoSurface, 0, 0, 0, 0)
        AnyChatPlatform.userCameraControl(userID, true)
        
    }
回复 支持 反对

使用道具 举报

发表于 2018-3-26 09:18:21 | 显示全部楼层
OnLocalVideoInit  您实现的这部分 代码是否不对,照着我们demo抄吧。另外您有没有写这个回调?建议您先调试我们demo跑跑debug下
回复 支持 反对

使用道具 举报

1

主题

3

帖子

21

积分

新手上路

Rank: 1

积分
21
 楼主| 发表于 2018-3-26 09:48:56 | 显示全部楼层
关键这个OnLocalVideoInit方法没有走

    //创建和初始化 AVCaptureVideoPreviewLayer 对象,实现本地视频的显示
    func OnLocalVideoInit(_ session: AVCaptureSession) {
        self.localCaptureLayer = AVCaptureVideoPreviewLayer(session: session)
        self.localCaptureLayer!.frame = CGRect.init(x: 0, y: 0, width: 100, height: 130)
        self.localCaptureLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill
        self.localVideoView.layer.addSublayer(self.localCaptureLayer!)
    }
   
回复 支持 反对

使用道具 举报

发表于 2018-3-26 11:05:13 | 显示全部楼层
请对比下我们的demo与您编写及相关引用之间的区别。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2020-4-9 21:47 , Processed in 0.257801 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表