Подтвердить что ты не робот

AVPlayerItem не может быть связан с несколькими экземплярами AVPlayer '

-(IBAction)play:(id)sender
{

    thumbImageView.alpha=0.0;

    NSString *stringvideo=[NSString stringWithFormat:@"http://streaming-service",[[NSUserDefaults standardUserDefaults]valueForKey:@"VideoIdselected"]];

    NSString *videoURLString = stringvideo;

       NSURL *url = nil;

  url = [NSURL URLWithString:videoURLString];





    self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:url];




    if (self.moviePlayerController)
    {
        /* Save the movie object. */
          [self setMoviePlayerController:self.moviePlayerController];


        [self installMovieNotificationObservers];

        /* Specify the URL that points to the movie file. */
        [self.moviePlayerController setContentURL:url];


        [self.moviePlayerController setMovieSourceType:MPMovieSourceTypeStreaming]; // for streaming



        self.moviePlayerController.controlStyle = MPMovieControlStyleEmbedded;

        // [self.videoPlayer setMovieSourceType:MPMovieSourceTypeStreaming];

      // self.moviePlayerController.shouldAutoplay = YES;

        [self.moviePlayerController.view setFrame: CGRectMake(0, 0, 320,160)];



        [self.moviePlayerController setFullscreen:NO animated:YES];

        [self.moviePlayerController view].backgroundColor = [UIColor lightGrayColor];

        [self.view addSubview:self.moviePlayerController.view];

        [self.view bringSubviewToFront:self.moviePlayerController.view];
        [self.moviePlayerController prepareToPlay];
        //self.moviePlayerController.useApplicationAudioSession = NO;

        [self.moviePlayerController play];





    }

}
Привет, Я пытаюсь передать видео в моем приложении iphone. Код воспроизводит локальный файл, но сбой с ошибкой "Завершение приложения из-за неперехваченного исключения" NSInvalidArgumentException ", причина:" AVPlayerItem не может быть связан с несколькими экземплярами AVPlayer "при использовании для потоковой передачи видео с сервера. Также ссылка передает видео абсолютно нормально в браузере, но, тем не менее, я не могу воспроизвести видео в приложении. Пожалуйста помоги. Благодаря
4b9b3361

Ответ 1

Если у вас такая же проблема, попробуйте установить ContentURL после установки SourceType, как показано ниже,

moviePlayerController_ = [[MPMoviePlayerViewController alloc] init];
moviePlayerController_.movieSourceType = MPMovieSourceTypeStreaming;
[moviePlayerController_.moviePlayer setContentURL:url];

Источник: devforums.apple.com/message/467199

Ответ 2

Это может быть проблема с MovieSourceType; вы играете локальный файл, но используете MPMovieSourceTypeStreaming; просто измените тип и повторите попытку

Ответ 3

Сначала вы должны сообщить игроку тип источника, который вы установили для этого содержимого видеофайла; как это

Вот два типа URL-адресов; если URL-адрес подобен этому, вы пишете эту функцию

 NSString *[email protected]"http://www.my url like this.com/video/videos/review/Michale JACKSON  AUDIENCE Comment.mp4";   

aStr = [aStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

или (второй)

NSString *[email protected]"http://www.normal url.com/video.mp4"

// after add your url string to this url

NSURL *url=[NSURL URLWithString:aStr];
MPMoviePlayerViewController *MPlayer = [[MPMoviePlayerViewController alloc]init];
MPlayer.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
[MPlayer.moviePlayer setContentURL:url];
[self presentMoviePlayerViewControllerAnimated:MPlayer];

Ответ 4

Я использовал moviePlayerController.movieSourceType = MPMovieSourceTypeUnknown работает для меня.. попробуйте..

Ответ 5

Не прямой ответ на вопрос, но если вы получите эту ошибку после попытки обновления contentURL, вызов stop() перед решением проблемы.

moviePlayerController.stop()
moviePlayerController.movieSourceType = .File
moviePlayerController.contentURL = newURL