Домен ошибки AVAudioPlayer = код NSOSStatusErrorDomain = -43

Я получаю указанную выше ошибку при попытке воспроизвести файл песни (выбранный через MPMediaPickerController). В iOS6 работает нормально, но на iOS5 я получаю сообщение об ошибке. Вот код:

DLog(@"song: %@", self.customSongUrl); //always logs a valid url such as ipod-library://item/item.mp3?id=-1890948386979134309

    if (self.customSongUrl) {
        AVAudioSession *session = [AVAudioSession sharedInstance];
        [session setCategory:AVAudioSessionCategoryPlayback error:nil];

        double delayInSeconds = 1.0;
        dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
        dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
            NSError *error = nil;
            self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:self.customSongUrl error:&error];
            if (!self.audioPlayer)
            {
                NSLog(@"AVAudioPlayer could not be established: %@", error); //results in Error Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be completed. (OSStatus error -43.)"                    
            }
            [self.audioPlayer prepareToPlay];
            [self.audioPlayer setNumberOfLoops:-1];
            [self.audioPlayer play];
        });
    }

Из проведенного мной исследования ошибка -43 указывает на то, что файл не существует. Но файл был выбран из библиотеки iTunes с помощью MPMediaPickerController. И опять же, эта ошибка возникает только на iOS5. Так почему же iOS5 думает, что песни не существует?

Для справки, вот как я получаю URL-адрес песни из средства выбора медиа:

- (void)mediaPicker:(MPMediaPickerController *) mediaPicker didPickMediaItems:(MPMediaItemCollection *) collection
{
    MPMediaItem *item = [[collection items] objectAtIndex:0];
    self.customSongUrl = [item valueForProperty:MPMediaItemPropertyAssetURL];

    [self dismissViewControllerAnimated:YES completion:NULL];

}

person soleil    schedule 09.07.2013    source источник


Ответы (1)


У меня была похожая проблема, проблема заключалась в том, что мой флажок «целевое членство в файле mp4» был снят, как только я его установил, файл воспроизводился отлично.

person Beleg    schedule 22.02.2014