AVAudioPlayer nie zaczyna grać w tle
ja używamAVAudioPlayer
iNSFileHandle
robić strumieniowe przesyłanie dźwięku. Podstawowa idea polega na tym, że zapisuję strumieniowe dane audio w urządzeniu z systemem plików, a następnie używamAVAudioPlayer
aby odtworzyć właśnie zapisany plik.AVAudioPlayer
nadal może odtwarzać ten plik, nawet transmisja strumieniowa jest w toku.
mamUIButton
aby rozpocząć przesyłanie strumieniowe / pobieranie. Gdy pobrane dane są gromadzone do określonej ilości bajtów,AVAudioPlayer
zagra (metoda „play”AVAudioPlayer
jest uruchamiany) automatycznie. Moje pytanie brzmi: stukam przycisk, aby rozpocząć przesyłanie strumieniowe / pobieranie, a następnie naciśnij przycisk domowy iPhone'a, aby moja aplikacja przeszła do tła. Pobieranie nadal działa w tle, ale metoda „play”AVAudioPlayer
zwraca „NO”, co oznacza, że metoda „play” nie odtwarza dźwięku.
dodałemAVAudioSession
powiązany kod do metody inicjowania mojego odtwarzacza audio:
- (id) initWithURL:(NSString *) downloadedMusicURL
{
if ((self = [super init]))
{
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
CFURLRef url = CFURLCreateWithFileSystemPath (NULL, (CFStringRef)downloadedMusicURL, kCFURLPOSIXPathStyle, FALSE);
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:CFBridgingRelease(url) error:nil];
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
}
return self;
}
Również w info.plist dodałem element „Aplikacja odtwarza dźwięk” dla klucza „Wymagane tryby tła”. Jednak „gra” nadal nie jest poprawnie wywoływana w tle. Co jeszcze tęskniłem? Z góry dziękuję.