Встраивать JavaScript? Или, может быть, используется какая-то другая технология? - PullRequest
2 голосов
/ 20 января 2012

Во-первых, я хотел бы показать вам кусок кода. Код представляет собой простой (старый стиль) встраивания фильма YouTube на ваш сайт:

<object width="560" height="315">
    <param name="movie" value="http://www.youtube.com/v/-pGYHDcQDwA?version=3&amp;hl=da_DK"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/v/-pGYHDcQDwA?version=3&amp;hl=da_DK" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>

Это довольно просто и работает.

Мое текущее решение

У меня также есть видеоплеер, который также позволяет встраивать. Код для встраивания в основном такой же:

<object width="387" height="316" align="top">
    <param name="movie" value="http://example.com/embedplayer.swf"></param>
    <param name="salign" value="lt" /></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <param name="wmode" value="transparent"></param>
    <embed src="http://example.com/embedplayer.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" salign="lt" width="387" height="316"></embed>
</object>

Мой выпуск

Я бы хотел, чтобы зритель мог просматривать мои видео на iPad или iPhone.
Форматы файлов не являются проблемой, поскольку видео были закодированы в несколько необходимых форматов.

Мне бы хотелось, чтобы функциональность была похожа на код для вставки YouTube. При просмотре страницы с кодом встраивания YouTube на iPad / iPhone появляется что-то еще (я думаю, это изображение со ссылкой на правильный формат файла).

При просмотре моего собственного кода встраивания на iPad / iPhone это явно не работает, так как я ссылаюсь непосредственно на SWF-файл.

Что я пробовал?

Пытаясь выяснить, как и для чего служит встраивание / объект YouTube, я просто попытался выполнить несколько простых запросов GET к URL-адресу YouTube, указанному в коде встраивания (http://www.youtube.com/v/-pGYHDcQDwA?version=3&hl=da_DK), и это дало мне в основном 404 (из-за плохих заголовков) или новый источник HTML с новым объектом Flash.
Другими словами, я не смог вручную воспроизвести то, что подается для iPad / iPhone.

Возможное / альтернативное решение

YouTube также позволяет использовать новый метод встраивания.
Это выглядит так:

<iframe width="560" height="315" src="http://www.youtube.com/embed/-pGYHDcQDwA" frameborder="0" allowfullscreen></iframe>

Это довольно прозрачно для меня. Встраивание еще одной страницы в iframe позволяет внешней странице выполнять проверки, что позволяет предоставлять клиенту нужный контент (HTML5, Flash или что-то еще). Ничего страшного.

Вопросы

  1. Как это работает для старого кода встраивания YouTube? Использование тегов embed / object для меня должно встроить какой-то определенный объект, но кажется, что код встраивания YouTube допускает различный контент в элементах embed / object.
  2. Будет ли новое (альтернативное решение) лучшим способом сделать это? Это кажется гибким и учитывает будущее легкое обслуживание. Но я всегда слышу, что iframes - это нет-нет.

Ответы [ 2 ]

1 голос
/ 20 января 2012

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

0 голосов
/ 20 января 2012

Кажется, что я смотрел не в ту сторону.

Вопрос первый:
Тестирование других видео-сайтов с встраиваемыми кодами на iPhone / iPad дало мне ожидаемый результат - пустую область.

Похоже, что через Согласование содержимого браузер устройства может заменить теги object / embed элементами, необходимыми для запуска приложения YouTube на устройстве.

Это означает, что я не могу создать аналогичное решение, что означает, что я должен либо создать / использовать проигрыватель видео HTML5, либо использовать альтернативное решение с помощью iframe (я мог бы объединить оба).

Это заставляет ответить на второйвопрос лишний, так как других вариантов у меня нет.

...