バックグラウンドで位置情報サービスを使用するアプリケーションがあります。正常に動作します。しかし、私がやりたいことは、ある時点で、アプリケーションがバックグラウンドにある間にいくつかのオーディオ レベルをチェックすることです。何らかの理由で機能していないようです。フォアグラウンドで実行している場合、関数は正常に動作しますが、バックグラウンドで実行している場合、オーディオ レコーダーの平均およびピーク入力は常に -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
動作すると思います。
何か考えやヒントはありますか?