バックグラウンドでオーディオを再生するアプリがあります。beginBackgroundTaskWithExpirationHandler
現在のトラックが終了したら、次のトラックにスキップするために使用しようとしています。
再生状態が変化したときに呼び出されるコードは次のとおりです。同じメソッド内の他のコードがバックグラウンドで正常に実装されていても、「呼び出されたbeginBG」をログに記録することはありません。
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[self ffwButtonPressed:ffwButton];
NSLog(@"beginBG called");
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
ffwButtonPressed
トラックを変更するためにいくつかの異なるメソッドを呼び出します。それが完了したら...
UIApplication *app = [UIApplication sharedApplication];
if (bgTask != UIBackgroundTaskInvalid) {
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
NSLog(@"end bgTask");
編集:宣言
UIBackgroundTaskIdentifier bgTask;
編集: ViewDidLoadで
bgTask = 0;