Ошибка 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;