-(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 "при использовании для потоковой передачи видео с сервера. Также ссылка передает видео абсолютно нормально в браузере, но, тем не менее, я не могу воспроизвести видео в приложении. Пожалуйста помоги.
БлагодаряAVPlayerItem не может быть связан с несколькими экземплярами AVPlayer '
Ответ 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