许多报警应用程序都设法做到这一点我不认为他们正在使用静音音频来保持应用程序运行,因为如果你真的退出家用应用程序它们不会发出声音.
...他们是否在锁定某些通知(无法以静音播放声音)之后保持循环运行,启动应用程序备份以播放音频或其他方法?
AVAudioPlayer使用:
AudioSessionInitialize(nil, nil, nil, nil);
AudioSessionSetActive(YES);
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory),&sessionCategory);
Run Code Online (Sandbox Code Playgroud)
并将Info.plist设置为:
所需的后台模式(UIBackGroundModes) - 应用播放音频(音频)
即使在应用程序运行和屏幕上的静音中,我也可以播放音频.如果音频已在运行,则可以使用主页按钮关闭应用程序并运行音频.但是,如果应用程序没有播放音频,并且屏幕被锁定,则所有线程都将被终止并且音频永远不会播放.这些应用程序如何解决这个问题?
A.使用'beginBackgroundTaskWithExpirationHandler:'使用无限循环来保持应用程序无限期运行.
优点:
缺点:
评论:
我几乎已经开始工作了,可能需要一些调整.这似乎不是所有这些其他警报正在做的事情,因为如果你按回家BTN他们不会继续运行.这表明他们使用了一些方法,允许他们在锁定时运行但不在BG中运行.(这就是我需要的)
此外,当你问你剩下多少时间跑步时,你会得到大约10分钟.通过在那里放置一个无限循环,数字实际上会降低到0,然后进入负数几个小时.(测试)我不确定这将在现实世界中或在应用程序接受方面如何表现.
B.使用静音音频循环构成连续音频播放媒体中心
优点:
缺点:
评论:
这可以在很多情况下起作用,但到目前为止还不理想.而且就像我再说一遍,必须有另一种没有记录的方法.
使用列出的APP进行测试表明他们没有使用我刚才描述的两种方法中的任何一种.方法'A'似乎更接近,但如果实施则不会表现出这些应用程序的行为方式.
我使用苹果开发者票来获取更多信息,我也会发布任何新的发现.
我们非常感谢您的参与,并感谢您的参与.