Подтвердить что ты не робот

Встраивание YouTube iframe не начинается с HD

Я пытаюсь встроить HD-видео YouTube, но независимо от того, что я пытаюсь, он только когда-либо загружает версию 480p.

Согласно YouTube, встраивание HD-видео так же просто, как добавление hd=1 к URL-адресу:

<iframe src="//www.youtube.com/embed/{videoId}?hd=1" width="960" height="720"  frameborder="0" allowfullscreen></iframe>

Это, однако, похоже, не работает, по крайней мере, в моей реализации iframe:

<iframe id="video-player" width="960" height="720" src="//www.youtube.com/embed/{videoId}?enablejsapi=1&autoplay=1&rel=0&modestbranding=1&showinfo=0&showsearch=0" frameborder="0" allowfullscreen></iframe>

То же самое можно сказать и о Javascript API:

HTML:

<div id="video-player"></div>

JS:

    var player;
    function onYouTubePlayerAPIReady() {
        player = new YT.Player('video-player', {
            height: '720',
            width: '960',
            videoId: '{videoId}',
            playerVars: {
                'controls': 1,
                'autoplay': 1,
                'hd': 1
            },
            events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
            }
        });
    }

    function onPlayerReady(event) {
        player.playVideo();
    }
4b9b3361

Ответ 1

Используйте этот параметр:

VQ = HD1080

Пример:

<iframe src="https://www.youtube-nocookie.com/embed/SzTdgE04uA8?vq=hd1080" width="853" height="480"></iframe>

Ответ 2

По этот ответ на форуме поддержки YouTube:

[Вставка iframe] попытается "оптимизировать" опыт и будет работать размеров встроенного проигрывателя, чтобы выбрать, какое качество играть по умолчанию.

Если вставка намного меньше 1280x750, например 853x510 или 640x390, она будет воспроизводить 480p или 360p, независимо от того, установлен ли параметр & hd = 1.

(Акцент мой)

Я изменил размеры iframe на 1280x720 и видео, загруженное с разрешением 720p.

Итак, в основном механизм внедрения iframe является интеллектуальным и загружает только самое близкое разрешение в соответствии с размером iframe.

Ответ 3

Есть трюк, который вы можете сделать. Установите качество через JS. Его не гарантировано, но работает на моем сайте (ggreplayz.com):

https://developers.google.com/youtube/js_api_reference#Playback_quality

Пример:

<iframe id="vid2" style="z-index: 1;" width="853" height="505" src="http://www.youtube.com/embed/<?php echo $vid2Array[0];?>?enablejsapi=1&wmode=transparent&hd=1" frameborder="0" allowfullscreen></iframe>

<script type="text/javascript">
...
    function onYouTubePlayerAPIReady() {    
      player1 = new YT.Player('vid1', {
        events: {
          'onReady': onPlayerReady1
        }
      });
...
    function onPlayerReady1(event) { 
        player1.setPlaybackQuality('hd720');
    }
...

Ответ 5

Я использую &hd=1&vq=hd720 для достижения этого. Он загружает версию 720p, даже если игрок меньше. Я получил эту информацию из этот источник.

Ответ 6

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

Когда я пытаюсь встроить видео 1000px в ширину, но только 408 пикселей в высоту (2.35: 1 матовый), он выбирает 360p > : |

Ответ 7

Проведя более 5 часов поиска и тестирования всех ответов, приведенный ниже код работает для меня. Использование Xcode 5, iOS 7.0.4 и iPad mini2.

- (void)viewWillAppear:(BOOL)animated
{


NSString *htmlString = @"<html><head>\
<meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = yes, height = 640px, width = 360px\"/></head>\
<body style=\"background:#000;margin-top:0px;margin-left:0px\">\
<iframe id=\"ytplayer\" type=\"text/html\" width=\"640px\" height=\"360px\"\
src=\"http://www.youtube.com/embed/%@?vq=hd1080\"\
frameborder=\"0\"/>\
</body></html>";

htmlString = [NSString stringWithFormat:htmlString,self.videoId, self.videoId];
[self.videoPlayerView loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.youtube.com"]];

}

Единственное важное значение здесь - соотношение сторон, которое вы задали в своем iframe ("width = \" 640px\ "height = \" 360px\"), которые в основном соответствуют отношениям 1280 * 720, а затем установите тот же размер для вашего UIWebView. Надеюсь, это поможет кому-то.

Ответ 8

Мина вообще не работала. Я пробовал все, включая все эти параметры

&hd=1&vq=hd720&quality=high

Но это не сработало, пока я не добавил этот параметр:

&version=3