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 плагина
[править] Исходники для swfflv плагина
|
|
Subscribe Now! |
|


