Проблема встраивания SWFobject flashvars

Внедрив EasyCaptions в свой блог WordPress, я наткнулся на кирпичную стену. Любая помощь будет оценена по достоинству. Я использую SWFobject для встраивания видео. Я вставил этот код: http://pastebin.com/0ZMSr0Bz в свой header.php и этот код для встраивания в моих сообщениях:

<video id="video-html5" width="480" height="320" controls="controls"
        source src="[url to video]" />
</video>

Проблема в том, что реализация работает только для видео, определенного здесь:

var flashvars = { file:'[video url]', ...

Все остальные вставки видео не работают. Я пробовал использовать список воспроизведения, но это не решило проблему. Как мне это решить? Нужен ли мне дополнительный код JS или PHP для добавления к параметру файла?


person MikeJaza    schedule 21.11.2012    source источник


Ответы (2)


[отредактированный пост]

Я только что перечитал ваш вопрос и посмотрел на pastebin. URL-адрес видео, который вы используете, представляет собой файл HTML: http://vidbull.com/embed-iqkhawkkx1rn-640x318.html. Вы не можете загрузить файл HTML как видео.

Попробуйте еще раз, используя правильный URL-адрес видео (MP4, F4V, OGG и т. д.).

-- ОБНОВЛЕНО на основе комментария OP --

Проблема в том, что вы жестко кодируете URL-адрес видео в заголовке WordPress. Вместо этого вам нужно использовать переменную. Я предлагаю использовать WordPress "shortcode" API, который позволит вам передавать переменные через пользовательский шорткод.

Определите свой шорткод в WordPress, например:

//[easycaptions]
function embed_easycaptions( $atts ){
  //your custom PHP code here, using the passed $atts
}

add_shortcode( 'easycaptions', 'embed_easycaptions' );

Затем при создании сообщения в блоге WordPress вы добавляете пользовательский шорткод, где хотите, например

[easycaptions url='http://localhost/wordpress1/wp-content/uploads/2012/10/Sheldon-in-a-Dress.mp4']

Инструкции и примеры см. на странице Shortcode API. Это довольно мощная система.

person pipwerks    schedule 21.11.2012
comment
Плохо, я вставил неправильный код (из одной из моих многочисленных попыток заставить EasyCaptions работать). Я обновил код на pastebin, чтобы исправить (что работает) код. Но, как я уже сказал, это работает только для одного видео, определенного во frashvars в header.php в WordPress. Как-нибудь обойти это? - person MikeJaza; 22.11.2012
comment
Спасибо, мне никогда не приходило в голову попробовать использовать API шорткода WP. Обязательно проверю! - person MikeJaza; 24.11.2012
comment
Не работает. Вы правы, проблема заключается в жестком кодировании URL-адреса видео в заголовке. Что нужно, так это сделать этот URL в переменной flashvars. Я не могу представить, как шорткоды добьются этого. - person MikeJaza; 05.12.2012
comment
шорткоды позволяют использовать переменные — часть url='' присваивает значение свойству URL объекта $atts в шорткоде. См. пример [caption class=headline]Моя подпись[/caption] на странице Shortcodes API. - person pipwerks; 05.12.2012
comment
Верно, но как мне сослаться на эту переменную в заголовке? Я что-то пропустил? - person MikeJaza; 06.12.2012
comment
Вы используете шорткод в сообщении, затем в заголовке вы используете PHP для извлечения атрибута, аналогично примерам на codex.wordpress.org/Shortcode_API#Атрибуты. После того, как вы извлекли его, вы используете PHP для печати JavaScript в ‹head› вашего HTML-файла. - person pipwerks; 06.12.2012

Решение заключается в том, чтобы НЕ прописывать URL-адрес видео в файле header.php. Вот что помогло решить эту проблему. Сначала я создал настраиваемое поле в wordpress, назвал егоThinema, а затем установил значение настраиваемого поля, чтобы быть встроенным URL-адресом видео в сообщении. Затем отредактировал этот код в моем header.php

flashvars = { file: '<?php echo get_post_meta(get_the_ID(), thinema, true); ?>'...

Я обновил код в pastebin. Надеюсь, это кому-то пригодится! Вы можете просмотреть реализацию здесь.

person MikeJaza    schedule 05.12.2012