我有一个在后台使用位置服务的应用程序。工作正常。但在某个时候,我想做的是在应用程序处于后台时检查一些音频电平。由于某种原因,它似乎不起作用。在前台运行时,该功能工作正常,但在后台运行时,录音机平均和峰值输入始终为 -120..
这就是我用来做这个把戏的方法(这显然不起作用..)
....
[recorder record];
if (levelTimer == nil) {
bgTask = 0;
app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.02 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];
}
...
是的levelTimerCallback
,即使在后台,每 0.02 秒调用一次,所以我认为beginBackgroundTaskWithExpirationHandler
工作正常。
有什么想法或一些提示吗?