Я делаю таймер обратного отсчета, который воспроизводит звуковой сигнал каждую секунду, считая через NSTimer. Приложение должно бодрствовать в течение максимального периода 90 минут и воспроизводить повторяющийся звуковой сигнал, пока таймер не станет недействительным. Из списка я выбрал «Приложение UIbackground Modes, воспроизводящее аудио», а также добавил делегат.m [UIApplication sharedApplication].idleTimerDisabled = YES;
, чтобы мой таймер оставался на экране. Проблема в том, что через 4 минуты повторяющийся звук прекращается . Все остальное работает, приложение кажется активным, ярлык с обратным отсчетом обновляется сам. Чтобы восстановить звук, вы должны выйти и перезапустить приложение.
Проблема возникает как в симуляторе, так и в устройстве (iPhone 3G).
Я использую xcode 4, если это имеет значение.
Вот мой код:
NSString *path = [[NSBundle mainBundle]
pathForResource:@"beep" ofType:@"mp3"];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:nil];
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
[audioPlayer play];
Конечно, я импортировал библиотеки
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
p.s. Я часами читаю темы о фоновом звуке и проверял почти все, что мог найти, но у меня ничего не получалось. Если кто-то может мне помочь, пожалуйста, имейте в виду, что я очень плохо знаком с программированием. Заранее спасибо.