Ошибка MPMoviePlayerController _itemFailedToPlayToEnd во время воспроизведения youtube видео iOS 7
Я видел, как это упоминалось в нескольких местах в Интернете, но еще не найти ответ нигде.
Я использую ALMovieplayercontroller библиотеку. Все работает нормально, но когда я пытаюсь воспроизвести видео Youtube, это дает мне ошибку.
_itemFailedToPlayToEnd: { kind = 1; new = 2; old = 0;
}
ИЗМЕНИТЬ
- (void)setContentURL:(NSURL *)contentURL {
self.movieSourceType = MPMovieSourceTypeStreaming;
[super setContentURL:contentURL];
[[NSNotificationCenter defaultCenter] postNotificationName:ALMoviePlayerContentURLDidChangeNotification object:nil];
[self play];
}
Вот мой код
ALMoviePlayerControls *movieControls = [[ALMoviePlayerControls alloc] initWithMoviePlayer:self.moviePlayer style:ALMoviePlayerControlsStyleDefault];
//[movieControls setAdjustsFullscreenImage:NO];
[movieControls setBarColor:[UIColor colorWithRed:195/255.0 green:29/255.0 blue:29/255.0 alpha:0.5]];
[movieControls setTimeRemainingDecrements:YES];
//assign controls
[self.moviePlayer setControls:movieControls];
[self.view addSubview:self.moviePlayer.view];
self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
//THEN set contentURL
[self.moviePlayer setContentURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=NaosmAGx8NM"]];
Я не могу найти решение для этого.
Пожалуйста, помогите.
Ответы
Ответ 1
Да, после столь большого исследования я обнаружил следующее решение.
MPMoviePlayerController напрямую не будет воспроизводить видео youtube. вам нужно извлечь URL-адрес видео и установить URL-адрес видео в MPMoviePlayerController. после этого видео будет воспроизводиться.
Существует много доступных API, которые предоставляют извлеченный URL-адрес видео.
Некоторые из них ниже
XCDYouTubeKit
HCYoutubeParser
Но используя этот API, ваше приложение может быть отклонено. вам следует использовать свой риск.
Лучший способ воспроизведения видео YouTube - это WebView.
Ответ 2
Ok!!! проблема в том, что игрок не знает, что вы пытаетесь играть,
- вы можете попробовать изменить имя на x.mp4
- вы можете отлаживать проект и видеть, что путь и файл, который вы пытаетесь воспроизвести, существуют.
Ответ 3
Если im not mistaken ALMovieplayercontroller
является расширением MPMoviePlayerController
.
Поэтому попробуйте установить тип источника проигрывателя для потока.
moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;