我正在使用具有音频/视频通话功能的应用程序。我想集成诸如在进行视频/音频通话时最小化视频/音频通话的功能。用户可以导航到其他视图控制器,但是仍然可以像Viber一样取回Audion / Video控制器。
当前,我展示了音频/视频视图控制器,因此我只关闭了导致正在进行的通话结束的选项。请帮助我了解Viber如何做到这一点。
我正在使用Callkit处理A / V来电。我设计了CallViewController类,该类负责A / V呼叫的布局。下面是我从Appdelegate.m文件中呈现CallViewController的方式。
///我正在使用Quickblox进行音频/视频通话
[CallKitManager.instance reportIncomingCallWithUserIDs:[opponentIDs复制]会话:会话uuid:self.callUUID onAcceptAction:^ {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Second" bundle:nil];
UIViewController *strongSelf = [Util fetchLastViewcontroller];
CallViewController *callViewController =
[storyboard instantiateViewControllerWithIdentifier:@"CallViewController"];
callViewController.session = session;
//callViewController.usersDatasource = strongSelf.dataSource;
callViewController.callUUID = self.callUUID;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:callViewController];
self.nav = nav;
[strongSelf presentViewController:nav animated:NO completion:nil];
} completion:nil]
因此,现在如果用户必须导航其他屏幕(例如聊天屏幕),则需要关闭callViewController。但是我希望CallViewController仍然应该在内存中,我需要像Viber一样将其取回。
我已经附上了Viber的屏幕截图
在下面的图像链接中,用户可以通过A / V通话导航至聊天屏幕,反之亦然 https://i.stack.imgur.com/kodFz.jpg
答案 0 :(得分:0)
您所描述的称为CallKit。它是Apple内置于iOS的工具包。
在不了解您源代码的细节的情况下,我无法帮助您进行集成,但这将是您入门的很好参考
https://developer.apple.com/documentation/callkit
https://www.raywenderlich.com/1276414-callkit-tutorial-for-ios
答案 1 :(得分:0)
最后我添加了代码,以将代码从CallViewController(用于处理音频/视频通话)推送到Chat(负责聊天对话)类,并在Chat类上添加了返回按钮,该按钮将弹出到CallViewController。这不是我的问题的100%解决方案,但仍然有效。