gpt4 book ai didi

ios - 如何在设备的前台应用程序中显示双高绿色状态栏(通话中)?

转载 作者:可可西里 更新时间:2023-11-01 03:09:20 25 4
gpt4 key购买 nike

这里有很多问题要求在后台显示红色录音栏。很明显,我应该为此使用 AVAudioSession 类别 AVAudioSessionCategoryPlayAndRecord。我的问题是,当我的应用程序中正在进行 VOIP 通话时,如何在前台应用程序中显示绿色的通话中栏(或至少是红色栏)?所以我可以返回调用 UI 点击状态栏区域,就像 Whatsapp或 Skype。

我已经尝试过的:

  • voipaudio 模式 UIBackgroundModes 中的键 Info.plist + setCategory:AVAudioSessionCategoryPlayAndRecord + setActive 按照建议 in this SO answer (在后台时给我一个红色的状态栏,但在前台时什么也没有)
  • Previous + AVAudioSession + setMode:AVAudioSessionModeVoiceChat - 没用
  • kCFStreamNetworkServiceTypeVoIP 标志设置为 pjsip 源中的套接字并重新编译它 - 没有帮助。此外,自 iOS 8 起已弃用。
  • 创建一个单独的套接字,为 inputStream/outputStream 设置 voip 标志:[self.inputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType](从 here 中获取示例代码)

使用 pjsip 进行调用。我还能尝试增加状态栏高度,将所有 UI 向下移动吗?是否有任何标准方法可以做到这一点,或者我应该通过调整根 UIWindow 的大小并在状态栏下设置另一个绿色 UIWindow 来自己破解它?


编辑:由于没有找到标准方法的答案,因此接受了@roman-ermolov 的答案。对于那些想要寻找答案的人,我可能会建议您自己做几个选择:

  1. 将你的根viewcontroller包裹在容器中,就像在Apple's iAdSuite with Storyboards example中一样.看看我的sample project例如。可能是制作该栏的最佳方式。
  2. 修改 UINavigationBar 高度(参见 this 方法)- 尚不适用于横向,但可能已解决
  3. 自己控制主 UIWindow 的框架,将另一个 UIWindow 放置在状态栏下并包含所需的内容。

最佳答案

我对这两个应用程序(WhatsApp 和 Skype)进行了调查,了解到它们使用自己的 UIView 来实现此功能。

这是 Skype: Skype status bar

这是WhatsApp(Reveal无法获取真实快照,但它传达了基本思想): enter image description here

在这两个应用程序中,它都是一个从屏幕顶部开始的 UIView,以及几种用于格式化输出文本/句柄触摸的方法。

Apple 在 iOS 10 中引入了 CallKit.framework , 但它似乎也没有那种功能,所以唯一的办法就是自己动手。

关于ios - 如何在设备的前台应用程序中显示双高绿色状态栏(通话中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com