admin 发表于 2013-7-4 15:35:48

有关AnyChat for iOS SDK资源释放的问题

在使用贵公司的AnyChatCoreSDK_iOS_V1.7时遇到问题,我参照demo写了另外一个demo工程,在同一个viewController里面执行

   //anyChat初始化
    ;
    //连接服务器
    ;
    //登陆
    ;

      这三个方法,之后进入到viewchat的房间

   // 进入房间
    ;

      以上都没问题。
      但是在释放viewController的时候,调用了退出房间、退出登陆、和销毁SDK资源的方法

   // 退出房间
    ;
    // 注销系统
    ;
    // 释放SDK资源
    ;

      执行以上这三个方法,在logout的时候会导致工程崩溃,有时候是第一次正常退出,但是再执行一次上述操作的时候工程崩溃,不知道logout和release的方法是怎样使用才能正确的登出和释放SDK资源呢?

      谢谢。

admin 发表于 2013-7-4 15:44:36

您好,请问您在进入房间成功之后,是否有打开本地的摄像头(UserCameraControl)?如果有打开,则需要主动的关闭,关闭摄像头的时候,不要忘记加入【OnLocalVideoRelease】方法:- (void) OnLocalVideoInit:(id)session
{
    self.localVideoSurface = ;
    self.localVideoSurface.frame = CGRectMake(5, 260, 120, 160);
    self.localVideoSurface.videoGravity = AVLayerVideoGravityResizeAspectFill;
   
    ;
}

- (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会比较合适。

龙二 发表于 2013-7-5 09:50:46

你好,手动关闭摄像头之后再退出房间,确实是ok了。但是当我第二次进入房间之后,再退出来,就会在 ;这地方崩溃,也就是说第一次初始化和释放SDK是没问题的,但是第二次初始化和释放SDK的时候就会在释放的时候崩溃。是不是因为初始化SDK的时候的默认设置,导致不能够再次释放SDK呢?

龙二 发表于 2013-7-5 09:52:10

另外还有个问题,获取对方视频的时候,有时候视频不能充满屏幕,两侧会有黑边;而有时候就是正常充满屏幕的,这是什么原因呢?

admin 发表于 2013-7-5 11:30:16

龙二 发表于 2013-7-5 09:50
你好,手动关闭摄像头之后再退出房间,确实是ok了。但是当我第二次进入房间之后,再退出来,就会在
您好,整个系统只需要一次初始化(Init)和一次资源释放(Release),所以您在第一次进入房间,然后离开房间(LeaveRoom)之后,是不需要释放SDK资源的(Release),在离开房间(LeaveRoom)之后,可以再次调用进入房间(EnterRoom)的API接口。释放SDK资源(Release)只需要在整个APP退出时才需要调用。
就会在 ;这地方崩溃可以分析一下崩溃之后的堆栈信息,看是什么原因导致的崩溃,然后有针对性的做修改。

admin 发表于 2013-7-5 11:35:23

龙二 发表于 2013-7-5 09:52
另外还有个问题,获取对方视频的时候,有时候视频不能充满屏幕,两侧会有黑边;而有时候就是正常充满屏幕的 ...
您好,这属于摄像头数据采集时设备方向的问题,AnyChat内核会自动根据摄像头采集的方向来对视频作处理,否则如果不处理,有时可能看到其它人的视频是横向的。

admin 发表于 2013-7-9 17:16:30

可参考最新的AnyChat for iOS SDK里面的demo程序:http://bbs.anychat.cn/forum.php?mod=viewthread&tid=26&extra=page%3D1
页: [1]
查看完整版本: 有关AnyChat for iOS SDK资源释放的问题