|
沙发
楼主 |
发表于 2013-7-4 15:44:36
|
只看该作者
您好,请问您在进入房间成功之后,是否有打开本地的摄像头(UserCameraControl)?如果有打开,则需要主动的关闭,关闭摄像头的时候,不要忘记加入【OnLocalVideoRelease】方法:- - (void) OnLocalVideoInit:(id)session
- {
- self.localVideoSurface = [AVCaptureVideoPreviewLayer layerWithSession: (AVCaptureSession*)session];
- self.localVideoSurface.frame = CGRectMake(5, 260, 120, 160);
- self.localVideoSurface.videoGravity = AVLayerVideoGravityResizeAspectFill;
-
- [self.view.layer addSublayer: self.localVideoSurface];
- }
- - (void) OnLocalVideoRelease:(id)sender
- {
- if(self.localVideoSurface)
- {
- self.localVideoSurface = nil;
- }
- }
复制代码 其中【OnLocalVideoInit】方法会在打开摄像头时由内核主动调用,而【OnLocalVideoRelease】方法会在摄像头销毁时由内核主动调用,如果忽略上面两个方法,程序可以正常编译,但是执行过程中可能会异常。有关OnLocalVideoInit、OnLocalVideoRelease两个方法的详细说明,可参考开发文档《AnyChat for iOS SDK开发手册》的2.3.3节“UIImageView视频显示”。
另外由于摄像头的销毁需要有一定的时间,所以在销毁AnyChat时最好加一点延迟,比如在关闭本地摄像头【UserCameraControl(-1, false)】之后,加500ms左右的延迟再调用离开房间【LeaveRoom】的API会比较合适。
|
|