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ę.

questionAnswers(4)

yourAnswerToTheQuestion