Iphone 在应用程序位于前台且屏幕锁定时播放声音-iOS
前言:我正在构建一个闹钟应用程序。许多其他闹钟应用程序(如alarm Clock Pro)可以在屏幕锁定且应用程序位于前台时播放闹钟。它们的警报可以无限时间播放,并且可以使用系统音量逐渐增大音量。它们也不控制音乐控制(如果打开多任务屏幕并滚动到播放音频,您将看不到它们的图标) 我在复制该功能时遇到了一些问题 要在应用程序处于前台时播放警报,我们会触发本地通知,这非常有效。当屏幕被锁定(应用程序处于非活动状态)时,我取得了一些有限的成功 我使用了以下方法:Iphone 在应用程序位于前台且屏幕锁定时播放声音-iOS,iphone,ios,background,screen,locked,Iphone,Ios,Background,Screen,Locked,前言:我正在构建一个闹钟应用程序。许多其他闹钟应用程序(如alarm Clock Pro)可以在屏幕锁定且应用程序位于前台时播放闹钟。它们的警报可以无限时间播放,并且可以使用系统音量逐渐增大音量。它们也不控制音乐控制(如果打开多任务屏幕并滚动到播放音频,您将看不到它们的图标) 我在复制该功能时遇到了一些问题 要在应用程序处于前台时播放警报,我们会触发本地通知,这非常有效。当屏幕被锁定(应用程序处于非活动状态)时,我取得了一些有限的成功 我使用了以下方法: 当屏幕锁定时,使用后台任务每秒运行一次N
NSTimer
。我设法让应用程序打开超过了10分钟的上限,但我无法播放声音。到时候AVAudioPlayer
播放1秒无声声音。声音结束后,重放声音并检查应用程序是否处于非活动(锁定屏幕)状态。如果它处于锁定屏幕状态,是时候播放警报了,请播放它。这里的问题是我必须使用
[[UIApplication sharedApplication]开始接收RemoteControlEvents]代码>
我在它自己单独的xCode项目中运行它,当应用程序在后台时,它只使用0.5%的cpu。原来是我的应用程序在吸cpu。因此,现在一切都正常了:)即使你的应用程序在设备打开时处于前台,锁定后也会转到后台(调用willresignactive)。 现在,从我在互联网上收集的信息来看,你不应该自己循环声音,而应该在你的主应用包中提供以下格式之一的自定义音乐文件:
- 线性PCM
- MA4(IMA/ADPCM)
- µ定律
- 阿拉
一切就绪。请参阅我上面的回答。不过基本上 我最终使用了
我在它自己单独的xCode项目中运行它,当应用程序在后台时,它只使用0.5%的cpu。原来是我的代码杀死了cpu。现在一切都好了 为了总结您的问题,您是否可以让它工作,但在屏幕锁定后最多只能工作10分钟?在底部添加了一个粗体的摘要,希望它有助于我知道您的应用程序处于前台,但您可以尝试通过“背景音乐”和“背景任务”来解决您的问题。可以在这里找到一个教程:我假设前台进程在10分钟后停止以节省电池。这不起作用,但确实起作用了!电池耗电量很大。我需要找到一个更有效的方法来做到这一点嘿,谢谢你的回复,但这不是一个理想的解决方案,我在做什么。如果您使用过任何良好的闹钟应用程序,当屏幕锁定且其应用程序位于前台时,无论您的系统设置音量和静音设置如何,闹钟都会播放。有一个看似合理的解决方案,使用本地通知和重复,但它们无法提供良好的用户体验,因为用户必须确保应用程序在睡觉前不会静音,从而使应用程序无法作为警报。我希望您能找到一种可靠的方法,使您的应用程序在设备锁定时不会被杀死。但即便如此,作为一个闹钟用户,我也不想记得打开你的应用程序(每次我关闭和打开设备时),因为否则闹钟就不会响了