AnyChat技术支持论坛

标题: OnLocalVideoInit 在什么时候调用 [打印本页]

作者: liu    时间: 2018-3-22 18:01
标题: OnLocalVideoInit 在什么时候调用
OnLocalVideoInit 没调用直接崩溃
-[AnyChat -[AnyChatDemo.VideoViewController OnLocalVideoInit:]: unrecognized selector sent to instance 0x103c533c0Demo.VideoViewController OnLocalVideoInit:]: unrecognized selector sent to instance 0x103c533c0


作者: 佰锐科技-刘冬明    时间: 2018-3-23 10:50
您可以发下我们的日志来分析下,您函数调用顺序是否有问题,另外您可以先直接跑下我们的demo看看是否正常。另外您可以参考我们的demo,调用UserCameraControl打开视频,调用UserSpeakControl打开音频。执行此操作之后,会自动调用OnLocalVideoInit方法
作者: liu    时间: 2018-3-26 08:34
没有什么分析日志
*** 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
OnLocalVideoInit  您实现的这部分 代码是否不对,照着我们demo抄吧。另外您有没有写这个回调?建议您先调试我们demo跑跑debug下
作者: liu    时间: 2018-3-26 09:48
关键这个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
请对比下我们的demo与您编写及相关引用之间的区别。




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3