我有一个ios应用程序,它可以从手机麦克风中获取音频,实时对麦克风数据进行一些处理,并将结果发送到耳机
在项目->功能->背景模式中,我选择了音频、AirPlay和画中画
我希望应用程序在后台(用户按下主页按钮)以及使用锁定按钮锁定手机屏幕时,继续读取麦克风数据并向耳机发送音频
所有这些都在发生,所以我不认为应用程序权限有任何问题,但我注意到,在应用程序备份后,它突然被杀死,通常在不到一分钟的内
我设法在xcode控制台的后台捕捉到了一个应用程序被杀的例子,消息是
Message from Debugger: terminated due to signal 9
环顾谷歌表明,这只是意味着该应用程序被使用SIGKILL 的操作系统破坏
有没有办法找出这个应用程序被杀的原因?是不是不可能让应用程序在后台长时间运行?在我启用Audio, AirPlay and Picture in Picture
背景模式之前,我一按下主页按钮或屏幕锁定按钮,音频就会停止。我假设,由于当我按下主页按钮时音频一直在运行,这意味着如果必须的话,我确实可以在后台运行麦克风/扬声器,而且有音乐播放器和录音机应用程序可以在后台工作,直到用户特别关闭它们。
我如何才能找出我的应用程序自动关闭的确切原因,以及我该怎么做才能让它无限期地在后台运行,直到用户关闭它?
通过xcode安装应用程序后,请正常运行(而不是在xcode中运行),让它崩溃。然后连接手机,进入xcode->Window->Devices and Simulators->View Device Logs。然后查找最近的崩溃。
在我看来,你的特殊问题听起来像是过度使用CPU。后台应用程序不能长时间(约一分钟)使用超过80%(IIRC)的设备CPU,否则将被系统杀死。如果是这样的话,你只需要优化你的代码,不要占用CPU。