Flvswf

Материал из Dom.

Перейти к: навигация, поиск


[править] Описание

Для своего сайта я разработал расширение для mediawiki позволяющее внедрить flv или swf-файлы в страницу. Прежде всего я провел краткий и не утешительный анализ существующих решений в этой области. На сайте mediawiki нашлось несколько похожих решений, но:

1. Некоторые из решений предполагали вставка flv-файла загружаемого с yourtube.
2. Вставка swf-файлов выполнялась без учета версии браузера (одна баг-версия ориентировалась только на mozilla) 
и без возможностей передавать swf-ке произвольные параметры, 
управлять версией нужного для проигрывания контента flashplayer.
3. Нет возможности корректно обработать ситуацию, когда у клиента нет plashplayer.

Принятно решение на основе javascript-библиотеки swfobject (решение которым пользуются продвинутые flash/flex программеры при вставке swf-файлов внутрь своих страниц) создать расширение для mediawiki.

1. для поддержки загрузки flv и swf на сервер (посредством стандартного Special:Upload) необходимо добавить в массив $wgFileExtensions новые расширения типов.

$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' , 'swf', 'flv');

2. Даже после того как я разрешил в предыдущей строке загружать файлы с расширениями swf и flv возникли проблемы.

Так при загрузке flv-файла я получал сообщение, что файл поврежден или его mime-тип неизвестен. Для этого я решил во все
файлы используемые при загрузке файлов на сервер добавить поддержку нового mime-типа.
2.1. В файле includes/mime.types проверено на наличие и добавлено если необходимо:
  application/x-shockwave-flash swf
  video/x-flv flv
2.2. В файле includes/mime.info проверено на наличие и добавлено если необходимо:
  application/x-shockwave-flash	[MULTIMEDIA]
  video/x-flv	[MULTIMEDIA]
2.3. В файле includes/SpecialUpload.php в функции 	function verifyExtension( $mime, $extension ) {
 добавлена первой строка кода:
  if ($extension == 'flv') return true;

3. В папку extensions скопирована папка swfflv с кодом расширения.

3.1. Подключено расширение внутри файла LocalSettings.php
   require_once("extensions/swfflv/setup.php" );

4. Для корректной работы расширения необходимо подключить к генерируемомому содержимомоу библиотеки swfobject и jquery. В файле swfflv/setup.php найдите следующие строки

return 
'
<script type="text/javascript" src="'.$path_TO.'swfobject.js"> </script>
<script type="text/javascript" src="'.$path_TO.'jquery-1.2.1.pack.js"> </script>
<script type="text/javascript" src="'.$path_TO.'swf_and_flv_process.js"> </script>
';
в том случае если у вас уже используются и подключены библиотеки swfobject.js и jquery, то вы можете исправить путь к ним на корректный.
В противном случае делать ничего не нужно.

5. Использование библиотеки. Внутри документа используйте теги swf и flv для вставки flash-содержимого. Например:


Это пример swf-файла


<swf width="200" height="200" fio="billi" age="13" bgcolor="#ff00ff" dummy="dummy_pic1.jpg">Untitled-1.swf</swf>


Это пример flv-файла

<flv width="500" height="500" fio="mark" dummy="dummy_pic2.jpg">Nes in russia get video.flv</flv>


Обратите внимание на указание для swf и flv-файлов размеров, также заглушки (dummy). Заглушка - это картинка которая будет показана в том случае если flashplayer на машине клиента не обнаружен.

Также можно использовать следующие параметры (специфические для swfobject)

 * wmode
 * quality
 * useExpressInstall
 * redirectUrl
 * xiRedirectUrl
Все параметры имена которых не совпадают с зарезервированными:
  width, height, bgcolor, wmode, quality, useExpressInstall, redirectUrl, xiRedirectUrl
Будут переданы как параметры внутрь swf-файла.

Не забудьте загрузить на сервер файлы Untitled-1.swf, dummy_pic1.jpg,Nes in russia get video.flv, dummy_pic2.jpg

В том случае если вы это не сделаете, то будет сгенерирована ошибка.

Изображение:swfflv_1.png

Если же все сделать правильно, то вы получите следующий результат:

Изображение:swfflv_2.jpg


[править] Пример работы swfflv плагина

Пример работы swfflv плагина


[править] Исходники для swfflv плагина

Исходники для swfflv плагина

Subscribe Now!

...

ObMachine projects & articles (java, flash, flex, php, ...)  -- black-zorro.com


Личные инструменты
Навигация