Вставить видео с youtube.com в приложение для iphone - PullRequest
6 голосов
/ 28 февраля 2011

Я пытаюсь встроить YouTube видео в мое приложение для iPhone. Я использую UIWebView и загружаю код для вставки из YouTube в виде строки HTML. Итак, у меня есть макет с базовой HTML-разметкой, и я помещаю туда этот код.

<embed id="yt" src="http://www.youtube.com/watch?v=L9szn1QQfas&fs=0" type="application/x-shockwave-flash" width="%width%" height="%height%"></embed>

Проблема в том, что видео всегда открывается в полноэкранном режиме. Я изменил свое свойство webview позволяетInlineMediaPlayback на YES _webview.allowsInlineMediaPlayback = YES;, но оно тоже не работает. Есть ли способ воспроизвести видео с YouTube без полноэкранного режима?

Я тоже пытался встраивать вот так

<iframe title="YouTube video player" id="videoframe" width="%width%" height="%height%" src="http://www.youtube.com/embed/L9szn1QQfas?rel=0" frameborder="0"></iframe>

и это

<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/L9szn1QQfas" width="%width%" height="%height%">
<param name="movie" value="http://www.youtube.com/v/L9szn1QQfas" />
<param name="quality" value="high" />
<param name="allowFullScreen" value="false" />
<embed id="yt" src="http://www.youtube.com/v/L9szn1QQfas" type="application/x-shockwave-flash" width="%width%" height="%height%"></embed>
</object>

Спасибо.

Ответы [ 6 ]

10 голосов
/ 05 марта 2013

В настоящее время есть один недокументированный параметр playsinline. Я тестировал его на iPhone 4S (iOS 6.1.2).

player = new YT.Player('player', {
    height: '390',
    width: '640',
    videoId: 'u1zgFlCw8Aw',
    playerVars: {
        'playsinline': 1
    }
});

И вам следует настроить веб-просмотр.

[webView setAllowsInlineMediaPlayback:YES];
10 голосов
/ 28 февраля 2011

Насколько мне известно, встроенное воспроизведение мультимедиа поддерживается только на iPad, а не на iPhone.Это может быть связано с ограничениями размера экранов.

Редактировать:

Я устанавливаю тестовый проект с UIWebView и кодом:

[webView setAllowsInlineMediaPlayback:YES];
[webView loadHTMLString:@"<embed id=\"yt\" src=\"http://www.youtube.com/watch?v=L9szn1QQfas&fs=0\" type=\"application/x-shockwave-flash\" width=\"300\" height=\"300\"></embed>"
                    baseURL:nil];

Iзапускал один и тот же точный код как на iPhone, так и на iPad, оба работали на iOS 4.2.1.

В результате iPhone воспроизводил видео только в полноэкранном режиме, независимо от установки для воспроизведения встроенного мультимедиа YES и iPad проигрывал видео в режиме реального времени.Вот картинка:

enter image description here

7 голосов
/ 03 января 2012

Для iOS 5 или новых приложений используйте официальный синтаксис, смотрите ссылку ниже, он работает очень хорошо

http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html

5 голосов
/ 17 октября 2013

Если кто-то все еще сталкивается с этой проблемой, ниже приведено лучшее решение, которое я видел. Работает как шарм

        self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10,300, 200)];
        [self.webView setAllowsInlineMediaPlayback:YES];
        [self.webView setMediaPlaybackRequiresUserAction:NO];

        [self.view addSubview:self.webView];

        NSString* embedHTML = [NSString stringWithFormat:@"\
                               <html>\
                                    <body style='margin:0px;padding:0px;'>\
                                        <script type='text/javascript' src='http://www.youtube.com/iframe_api'></script>\
                                        <script type='text/javascript'>\
                                            function onYouTubeIframeAPIReady()\
                                            {\
                                                ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})\
                                            }\
                                            function onPlayerReady(a)\
                                            { \
                                                a.target.playVideo(); \
                                            }\
                                        </script>\
                                        <iframe id='playerId' type='text/html' width='%d' height='%d' src='http://www.youtube.com/embed/%@?enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'>\
                                    </body>\
                               </html>", 300, 200, @"JW5meKfy3fY"];
        [self.webView loadHTMLString:embedHTML baseURL:[[NSBundle mainBundle] resourceURL]];

Источник: https://code.google.com/p/gdata-issues/issues/detail?id=5204

4 голосов
/ 03 марта 2013

Воспроизведение видео на YouTube также на iPhone. Вам нужно установить свойство на UIWebView

webView.allowsInlineMediaPlayaback=YES;

И вам нужно добавить & playsinline = 1 в код для вставки iframe YouTube.

<iframe webkit-playsinline width=\"200\" height=\"200\" src=\"https://www.youtube.com/embed/GOiIxqcbzyM?feature=player_detailpage&playsinline=1\" frameborder=\"0\"></iframe>

Протестировано на iPhone 4S под управлением iOS 6.1.2 работает как шарм.

2 голосов
/ 19 июня 2015

Если вы разрабатываете свое приложение для ios версии 7 или выше, вы можете использовать класс YTPlayerView, доступный на Встраивание видео YouTube в приложения для iOS с помощью библиотеки помощников YouTube . Он очень прост в использовании, а также обеспечивает полный контроль над видеоплеером, используя его делегат YTPlayerViewDelegate. Надеюсь, это может кому-нибудь помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...