it-swarm.com.ru

Воспроизведение видео с YouTube с помощью MPMoviePlayerController вместо UIWebView

Я пытаюсь передавать потоковое видео с YouTube с помощью MPMoviePlayerController, но у меня возникают некоторые проблемы. Код, который я использую, довольно прост, и я могу воспроизвести видео .m4v, передав URL-адрес initWithContentURL. Когда я запускаю проигрыватель фильмов, проигрыватель включается, но уходит примерно через 20 секунд. Когда я пробую это в симуляторе, я получаю предупреждение, которое говорит, что сервер не настроен правильно. Есть ли какой-то аргумент, который мне нужно передать с помощью URL, чтобы получить определенный тип видеопотока от Google?

NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayer play];

Я также попробовал следующие URL http://www.youtube.com/watch?v=HGd9qAfpZio

Я также видел аргумент & format = 1 и пытался добавить это в конец обеих строк, но не повезло.

87
jmurphy

Единственный способ воспроизвести видео на YouTube в вашем собственном приложении - это создать UIWebView с тегом embed из Youtube для фильма, который вы хотите воспроизвести в качестве контента UIWebView's. UIWebView определит, что встроенный объект является ссылкой на Youtube, а содержимое веб-представления будет предварительным просмотром YouTube для видео. Когда пользователь нажимает на предварительный просмотр, видео будет отображаться в MPMoviePlayerController. Это метод, описанный по ссылке, предоставленной Muxecoid ( как воспроизводить видео на YouTube в приложении ), и это (насколько я знаю) единственный способ воспроизведения видео на YouTube в приложении. Вы все еще можете запустить приложение Youtube, передав URL-адрес YouTube в -[UIApplication openURL:], но, конечно, это закрывает ваше собственное приложение, что часто нежелательно.

К сожалению, нет возможности напрямую воспроизвести видео на YouTube с помощью MPMoviePlayerController, поскольку YouTube не предоставляет прямых ссылок на видеофайлы.

78
Bryan Henry

Если вы используете Код:

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
     NSString* embedHTML = @"\ 
        <html><head>\ 
     <style type=\"text/css\">\ 
     body {\ 
     background-color: transparent;\ 
     color: white;\ 
    }\ 
   </style>\ 
    </head><body style=\"margin:0\">\ 
       <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
       </body></html>";  
   NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
   if(videoView == nil) {  
      videoView = [[UIWebView alloc] initWithFrame:frame];  
     [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:nil];  
  }

Источник:

Просто перейдите по этой ссылке

Убедитесь, что вы тестируете его на устройстве, а не на симуляторе. Так как симулятор всегда будет отображать знак вопроса с синим квадратом (у него нет быстрого игрока).

26
Jimit

Как я писал выше в своем комментарии, я должен был сделать это в проекте, над которым я работал. Я решил эту проблему и отправил код на github.

Вы можете проверить источник и разветвить его здесь .

Он в основном принимает URL-адрес YouTube и получает все видео-совместимые с iOS URL-адреса.

Надеюсь, что это поможет!
Приветствия

23
hellozimi

Я просто наткнулся на кого-то, кто смог поместить видео YouTube в MPMoviePlayerController. Это кажется возможным сейчас.

LBYouTubeView

13
TPoschel

Чтобы воспроизвести видео в трубе, вам нужно извлечь URL перед передачей URL в MPMoviePlayer. Вы не можете играть в нее напрямую.

В моем репозитории github есть демонстрационная реализация.

Увидеть:

https://github.com/DpzAtMicRO/IOSYoutubePlayer

Попробуйте, это позволяет загружать и воспроизводить видео с YouTube прямо в MPMoviePlayer, как и любое другое видео, и это тоже довольно хороший подход. 

Правка: убедитесь, что вы прошли через Readme.md, прежде чем использовать это в своем проекте

2
D_D

Это так же просто, как взять элемент src в iframe для нового кода встраивания и вызвать 

[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];
1
jjxtra

Существует официальный способ встраивания видео YouTube в приложение iOS, предоставляемое Google.

Установить библиотеку через cocoapods: pod "youtube-ios-player-helper"

импортировать по: #import “YTPlayerView.h” Используйте UIView и установите для класса значение YTPlayerView или создайте объект из YTPlayerView программно.

Загрузить видео: [self.playerView loadWithVideoId:@"M7lc1UVf-VE"];

Также доступны методы playVideo и stopVideo. Для получения дополнительной информации посетите эта ссылка

0
Ganpat

Проверьте следующую ссылку. Я думаю, что это поможет вам.

https://mobiletechfeast.blogspot.in/2014/08/youtube-player-for-ios.html

0
arango_86