Воспроизведение видео на 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 и пытался добавить это в конец обеих строк, но не повезло.
Ответы
Ответ 1
Единственный способ воспроизведения видео в YouTube в своем приложении - создать UIWebView
с тегом embed из Youtube для фильма, который вы хотите воспроизвести в качестве контента UIWebView's
. UIWebView
обнаружит, что внедренный объект является ссылкой Youtube, а содержимое веб-представления будет предварительным просмотром youtube для видео. Когда пользователь нажимает предварительный просмотр, видео будет отображаться в MPMoviePlayerController. Это метод, описанный в ссылке, который Muxecoid предоставил (как воспроизводить видео в YouTube в приложении), и это (насколько я знаю ) единственный способ иметь видеоролик YouTube в приложении. Вы все еще можете запустить приложение Youtube, передав URL-адрес youtube в -[UIApplication openURL:]
, но, конечно, это закрывает ваше собственное приложение, которое часто нежелательно.
К сожалению, нет возможности напрямую воспроизводить видео с youtube с помощью MPMoviePlayerController
, потому что youtube не предоставляет прямые ссылки на видеофайлы.
Ответ 2
Если вы используете
Код:
- (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];
}
Источник:
Просто перейдите по этой ссылке
Убедитесь, что вы протестировали его на устройстве, а не на симуляторе. Поскольку симулятор всегда будет отображать вопросительный знак с синим полем (у него нет оперативного проигрывателя).
Ответ 3
Как я писал выше в своем комментарии, мне пришлось сделать это в проекте, над которым я работал. Я решил эту проблему и представил код в github.
Вы можете проверить источник и сделать его здесь.
В основном он берет URL-адрес youtube и получает все совместимые с iOS видеоролики.
Надеюсь, что это поможет!
Приветствия
Ответ 4
Я просто наткнулся на кого-то, кто смог разместить видео YouTube
внутри MPMoviePlayerController
. Теперь это возможно.
LBYouTubeView
Ответ 5
Чтобы воспроизвести видеоролики с трубами, вам нужно извлечь URL-адрес, прежде чем передать URL-адрес в MPMoviePlayer
. Вы не можете воспроизвести его напрямую.
В моем github-репо есть демонстрационная реализация этого.
См:
https://github.com/DpzAtMicRO/IOSYoutubePlayer
Попробуйте, это позволяет загружать и воспроизводить видео с YouTube прямо в MPMoviePlayer
, как и любое другое видео, и это тоже очень хороший подход.
РЕДАКТИРОВАТЬ: Прежде чем использовать это в своем проекте, убедитесь, что вы хорошо читаете Readme.md
Ответ 6
Это так же просто, как взять элемент src iframe для нового кода вставки и вызвать
[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];
Ответ 7
Проверьте следующую ссылку. Я думаю, это поможет вам.
https://mobiletechfeast.blogspot.in/2014/08/youtube-player-for-ios.html