AnyChat技术支持论坛
标题: 关于第二次发起视频本地视频窗口不开启,以及返回上级界面崩溃的问题 [打印本页]
作者: AnyChatUser 时间: 2014-9-2 14:31
标题: 关于第二次发起视频本地视频窗口不开启,以及返回上级界面崩溃的问题
项目中通过点击TabBar子界面中的某一界面中的按钮,Push到文字聊天界面,之后点击文字聊天界面中的一个按钮Modal到视频通话界面,点击视频通话界面的“挂断视频”按钮dismiss到文字聊天界面,具体流程就是这样。遇到的问题如下 :
1.
进入文字聊天界面文字聊天没有任何问题,点击左上角导航栏返回按钮也能正常返回(这一步执行了离开房间的操作),
但是当我点击视频,进入视频聊天界面如果对方没接听,我直接挂断回到文字聊天页面,在点击文字页面左上角返回也不会有任何问题,
如果对方接听我的视频请求之后,我挂断视频,返回到文字聊天界面,再点击左上角返回就会崩溃。
2.
当我第一次请求视频成功接通之后,双方都能看到对方(正常),双方有一方挂断,我会回到文字聊天页面,这时我再次点击视频请求时,我的本地视频窗口是不显示的(我自己看不到自己的画面),但是对方是能看到我的画面的(只是我本地的没打开)。
部分代码:项目使用StroyBoard完成
进入文字聊天界面
// 用户执行进入房间操作
[AnyChatPlatform EnterRoom:roomID.intValue :@""];
[self performSegueWithIdentifier:@"showTextChatViewController" sender:self]; (此处为Push操作)
文字页面跳转到视频界面
// 跳转到视频聊天界面
[self performSegueWithIdentifier:@"showVideoViewController" sender:self]; (此处为Modal操作)
视频聊天界面返回文字聊天界面
- (IBAction)OnFinishVideoChatBtnClicked:(id)sender
{
[AnyChatPlatform VideoCallControl:BRAC_VIDEOCALL_EVENT_FINISH :self.iRemoteUserId :0 :0 :0 :@""];
[self FinishVideoChat];
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (void)FinishVideoChat
{
[AnyChatPlatform UserSpeakControl:-1 :NO];
[AnyChatPlatform UserCameraControl:-1 :NO];
[AnyChatPlatform UserSpeakControl:self.iRemoteUserId :NO];
[AnyChatPlatform UserCameraControl:self.iRemoteUserId :NO];
}
返回文字聊天页面之后:
文字聊天页面左上角导航栏返回按钮点击事件:
- (void)popCurrentViewController
{
[AnyChatPlatform LeaveRoom:-1];
[self.navigationController popViewControllerAnimated:YES];
}
作者: chenxs 时间: 2014-9-2 15:16
本帖最后由 chenxs 于 2014-9-2 15:23 编辑
你好,方便的话,能把您的崩溃日志贴上来,我们帮您分析找下原因!
作者: AnyChatUser 时间: 2014-9-2 15:22
日志就不用发了,谁都会看日志。OnLocalVideoRelease 这个方法没定义,找不到。以为我是在上一页离开房间的。
作者: 廖斌 时间: 2014-9-2 15:25
您好,请把崩溃的日志发上来看下,这个日志不是指anychat的日志哦是您崩溃提示的错误日志。只有拿到了错误日志的提示,我们才能帮您分析这个问题
作者: AnyChatUser 时间: 2014-9-2 15:31
很抱歉,我们的服务器现出问题了,暂时还不能测试,所以我现在取不到崩溃日志,光凭我的代码不能找到原因么?
作者: 廖斌 时间: 2014-9-2 15:33
光凭代码还不能定位,我们现在还不能判断是我们sdk造成的还是你们上层代码引起的。
作者: AnyChatUser 时间: 2014-9-2 15:33
给个解决方案吧,思路也行啊。如何解决
作者: 廖斌 时间: 2014-9-2 15:35
最简单是您将你的代码简化下,然后将工程发给我们,我们尝试调试下
作者: 梁家初 时间: 2014-9-2 15:35
您好,能否在自己本机上部署一个服务器连接测试,并重现问题日志。
作者: AnyChatUser 时间: 2014-9-2 15:37
这个应该可以,我尝试简化一下!
作者: admin 时间: 2014-9-2 16:18
您好,根据您前面的描述和代码,给一个修改建议,看是否有效:- - (IBAction)OnFinishVideoChatBtnClicked:(id)sender
- {
- [AnyChatPlatform VideoCallControl:BRAC_VIDEOCALL_EVENT_FINISH :self.iRemoteUserId :0 :0 :0 :@""];
- [self FinishVideoChat];
- [self dismissViewControllerAnimated:YES completion:NULL];
- }
- - (void)FinishVideoChat
- {
- [AnyChatPlatform UserSpeakControl:-1 :NO];
- [AnyChatPlatform UserCameraControl:-1 :NO];
- [AnyChatPlatform UserSpeakControl:self.iRemoteUserId :NO];
- [AnyChatPlatform UserCameraControl:self.iRemoteUserId :NO];
- [self performSelector:@selector(AnyChatLeaveRoom) withObject:nil afterDelay:0.5f];
- }
- - (void) AnyChatLeaveRoom
- {
- [AnyChatPlatform LeaveRoom:-1];
- }
- // 返回文字聊天页面之后,文字聊天页面左上角导航栏返回按钮点击事件:
- - (void)popCurrentViewController
- {
- [self.navigationController popViewControllerAnimated:YES];
- }
复制代码 主要的考虑是,在离开房间时,需要预留一些时间来释放硬件资源,否则可能会导致摄像头被占用。
作者: AnyChatUser 时间: 2014-9-2 16:44
您好,这是我写的DEMO,流程与我的项目流程一样,麻烦看一下原因所在,还有就是如果在视频界面离开的时候leaveroom的话,回到文字界面是不能接续聊天的。
而且您的方法我已经尝试过了,不起作用。
DEMO中SDK文件由于附件大小原因我已移除,请自行添加。
-
-
AnyChatTest 2.zip
56.58 KB, 下载次数: 1
DEMO
作者: admin 时间: 2014-9-2 16:46
好的,马上把您的代码转给iOS工程师调试一下,有消息会及时反馈。
作者: chenxs 时间: 2014-9-3 12:04
本帖最后由 chenxs 于 2014-9-3 14:52 编辑
你好,我们下载了你的 demo ,可以调试之后,运行,在进入视频再返回到第一个页面时,没有出现你说的崩溃的问题,而且在回到第一个界面时候并没有调用“离开房间方法”。
发到论坛上的 demo,你是在做测试的时候有发现崩溃的现象吗?
欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) |
Powered by Discuz! X3 |