1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.1.1 Как заставить YouTube воспроизводить видео на форуме в HD?

Тема в разделе "Для новичков", создана пользователем Andyk, 30.01.2012.

Загрузка
  1. Andyk

    Andyk Местный

    Регистрация:
    27.01.12
    Сообщения:
    64
    Симпатии:
    6
    Версия XF:
    1.1.2
    Дефолтный код вставки видео с youtube
    HTML:
    <iframe width="640" height="480" src="http://www.youtube.com/embed/{$id}?wmode=opaque" frameborder="0" allowfullscreen></iframe>
    Как заставить ролик проигрывать сразу в HD?
    Пробовал:
    HTML:
    <iframe width="640" height="480" src="http://www.youtube.com/embed/{$id}?wmode=opaque&hd=1" frameborder="0" allowfullscreen></iframe>
    HTML:
    <iframe width="640" height="480" src="http://www.youtube.com/embed/{$id}?wmode=opaque" frameborder="0" quality="high" allowfullscreen></iframe>
    Не работает, хотя в phpbb3 такой код срабатывал.

    Даже код
    Код:
    <iframe width="640" height="480" src="http://www.youtube.com/embed/{$id}?wmode=opaque&amp;hd=1" frameborder="0" allowfullscreen></iframe>
    ссылка которого в исходнике страницы ведет на полноэкранный плеер в HD все равно работает в 360p на форуме :(
     
  2. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    А там качество не зависит от размеров окна?
    Может попробовать увеличить размер фрейма? Хотя если я прав, то для HD наверно понадобится полноэкранный режим.
     
  3. Andyk

    Andyk Местный

    Регистрация:
    27.01.12
    Сообщения:
    64
    Симпатии:
    6
    Версия XF:
    1.1.2
    Да, фрейм не реагирует на hd=1 или quality="high" при маленьком размере окна.
    Остановился на таком решении:
    HTML:
    <object width="640" height="480"><param name="movie" value="http://www.youtube.com/v/{$id}?hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/{$id}?hd=1" type="application/x-shockwave-flash" width="640" height="480" allowscriptaccess="always" allowfullscreen="true"></embed></object>
     
  4. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    Не wmode нужно, а allowFullScreen.

    Для булки переделывал passiveVid у которого тоже нет развёртывания на весь экран.
    В общем там код изначально такой:
    Код:
        // YouTube
        $passiveVid[] = array (
            'string' => '#'.$urlrx[0].'(?:[a-zA-Z]{1,4}\.)?youtube.com/(?:watch)?\?v=(.{11}?)'.$urlrx[1].'#',
            'replacement' => '$PASSIVEURL = $matches[1]; $PASSIVETITLE = $matches[3]; $PASSIVEEMBED = \'<object width="706" height="590"><param name="movie" value="http://www.youtube.com/v/\'.$matches[2].\'"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/\'.$matches[2].\'" type="application/x-shockwave-flash" wmode="transparent" width="706" height="590"></embed></object>\'; return "'.$customstring.'";',
            'id' => 1
            );
        $passiveVid[] = array (
            'string' => '#\[youtube\]([^\[\]]+)\[/youtube\]#',
            'replacement' => 'return \'<object width="706" height="590"><param name="movie" value="http://www.youtube.com/v/\'.$matches[1].\'"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/\'.$matches[1].\'" type="application/x-shockwave-flash" wmode="transparent" width="706" height="590"></embed></object>\';',
            'id' => 1
            );
    Я подкорректировал и получилось так:
    Код:
        // YouTube
        $passiveVid[] = array (
            'string' => '#'.$urlrx[0].'(?:[a-zA-Z]{1,4}\.)?youtube.com/(?:watch)?\?v=(.{11}?)'.$urlrx[1].'#',
            'replacement' => '$PASSIVEURL = $matches[1]; $PASSIVETITLE = $matches[3]; $PASSIVEEMBED = \'<object width="706" height="590"><param name="movie" value="http://www.youtube.com/v/\'.$matches[2].\'?fs=1&amp;hl=ru_RU&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/\'.$matches[2].\'?fs=1&amp;hl=ru_RU&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="706" height="590"></embed></object>\'; return "'.$customstring.'";',
            'id' => 1
            );
        $passiveVid[] = array (
            'string' => '#\[youtube\]([^\[\]]+)\[/youtube\]#',
            'replacement' => 'return \'<object width="706" height="590"><param name="movie" value="http://www.youtube.com/v/\'.$matches[1].\'?fs=1&amp;hl=ru_RU&amp;hd=1"><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/\'.$matches[1].\'?fs=1&amp;hl=ru_RU&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="706" height="590"></embed></object>\';',
            'id' => 1
            );
    Не iframe конечно, но попробуй сделать по аналогии.
     
  5. Andyk

    Andyk Местный

    Регистрация:
    27.01.12
    Сообщения:
    64
    Симпатии:
    6
    Версия XF:
    1.1.2
    С развертыванием нет проблем. Проблема в том, что при использовании фрейма нельзя заставить плеер сразу воспроизводить в HD. Если только изначально размер фрейма не сделать под HD.
     

Поделиться этой страницей