Была проблема с размещением видео на сайте... Пробовал несколько дней получился один нормальный вариант (jquery_media+jquery.media.js)... Потом попробовал реализовать тоже самое только без модуля jquery_media...
Получилось...
Вот как:
1. Создаем новый тип материала (я назвал его media)
2. Копируем файл node.tpl.php и переименовываем его в node-media.tpl.php
3. Открываем на редактирование этот файл и дописываем туда следующие строки
<?php drupal_add_js($path_to_js.'swfobject.js'); ?>
<?php
drupal_add_js('if (Drupal.jsEnabled) {
$(document).ready(function() {
$.fn.media.defaults.flvPlayer = \'/player-viral.swf\';
$.fn.media.defaults.mp3Player = \'/player-viral.swf\';
$.fn.media.defaults.autoplay = 1;
$.fn.media.defaults.params = { allowfullscreen: true };
$(\'a\').media();
});
}', 'inline');
?>
В итоге файл node-media.tpl.php должен выглядеть примерно так:
// $Id: node.tpl.php,v 1.7 2007/08/07 08:39:36 goba Exp $
?>
<?php drupal_add_js($path_to_js.'jquery.media.js'); ?>
<?php drupal_add_js($path_to_js.'swfobject.js'); ?>
<?php
drupal_add_js('if (Drupal.jsEnabled) {
$(document).ready(function() {
$.fn.media.defaults.flvPlayer = \'/player-viral.swf\';
$.fn.media.defaults.mp3Player = \'/player-viral.swf\';
$.fn.media.defaults.autoplay = 1;
$.fn.media.defaults.params = { allowfullscreen: true };
$(\'a\').media();
});
}', 'inline');
?>
<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
<div class="media-page">
<?php if ($picture) {
print $picture;
}?>
<?php if ($page == 0) { ?><h2 class="title"><a href="<?php print $node_url?>"><?php print $title?></a></h2><?php }; ?>
<div class="content"><?php print $content?></div>
<?php if ($links) { ?><div class="links">» <?php print $links?></div><?php }; ?>
</div>
</div>
4. Далее идем сюда и скачиваем файл скрипта jquery.media.js Помещаем его в корень на хостинге, далее скачиваем плеер Media Player from Jeroen Wijering... И извлекаем все файлы плеера в корневой каталог...
5. Открываем редактируем файл скрипта jquery.media.js и редактруем
flvPlayer: 'player-viral.swf',
mp3Player: 'player-viral.swf',
до редактирования эти строки выглядели так:
// default flash video and mp3 player (see: http://jeroenwijering.com/?item=Flash_Media_Player)
flvPlayer: 'mediaplayer.swf',
mp3Player: 'mediaplayer.swf',
Как бы все...
Как это работает:
Теперь во всех материалах типа media будет подгружаться скрипт jquery.media.js, который в свою очередь во всех встречающихся ссылках на странице будет заменять ссылки на файлы с расширениями (видео:asx, asf, avi, flv, mov, mpg, mpeg, mp4, qt, ra, smil, swf, wmv, 3g2, 3gp; аудио:aif, aac, au, gsm, mid, midi, mov, mp3, m4a, snd, ra, ram, rm, wav, wma) на плеер...
если вам нужно чтобы проверялись не все ссылки а только определенные классы ссылок замените тут:
$.fn.media.defaults.flvPlayer = \'/player-viral.swf\';
$.fn.media.defaults.mp3Player = \'/player-viral.swf\';
$.fn.media.defaults.autoplay = 1;
$.fn.media.defaults.params = { allowfullscreen: true };
$(\'a\').media();
вместо строки $(\'a\').media(); поставте строку со своим классом например $(\'.,mymediaklass\').media();
Надеюсь это комуто еще пригодится и сэкономит чье то время и нервы)))
Комментарии
И еще вопрос для тех ктознает Javascript
Для чего нужен вот этот скрипт
$(document).ready(function() {
$.fn.media.defaults.flvPlayer = \'/player-viral.swf\';
$.fn.media.defaults.mp3Player = \'/player-viral.swf\';
$.fn.media.defaults.autoplay = 1;
$.fn.media.defaults.params = { allowfullscreen: true };
$(\'a\').media();
});
}
МЫ же вроде как прописываем все умолчания в файле jquery.media.js ???
В опере и файерфоксе работает нормально... А ишак почемуто выдает ошибку на символе 3894 сейчас разбираюсь
Молодечик (нажал виртуальный +1)
Хвалю, хорошо когда своими руками, а то все модули, модули...
kyky
Вы не сталкивались с такой проблемой??? Почему Эксплорер выдает ошибку???
ВОзьмите фаерфокс, поставьте плагин firebug, там есть js-отладчик. Узнаете где ошибка.
Химический Али
У меня стоит файерфокс с файрбагом... Дело в том что в Файерфоксе и Опере все отображается нормально...
Я тоже вставлял эту библиотеку вручную через шаблон, но ошибок не было...
Пёс его знает, этого осла. Он и на срипт Google Analytics ругался.
Я разобрался...
Вся проблема была в этой строке
Почему то когда swfobject.js подгружается с использованием jquery_media Все нормально работает... Удалил эту строку и все встало на свои места...
Во всех браузерах работает нормально...
ВСЕМ КТО ЗАХОЧЕТ ВОСПОЛЬЗОВАТЬСЯ ЭТИМ СПОСОБОМ
Файл типа отображения материала должен выглядеть так (проверял на всех распространенных браузерах кроме Safari):
// $Id: node.tpl.php,v 1.7 2007/08/07 08:39:36 goba Exp $
?>
<?php drupal_add_js($path_to_js.'jquery.media.js')?>
<?php
drupal_add_js('if (Drupal.jsEnabled) {
$(document).ready(function() {
$.fn.media.defaults.autoplay = 1;
$.fn.media.defaults.params = { allowfullscreen: true };
$(\'.media\').media();
});
}', 'inline');
?>
<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
<div class="media-page">
<?php if ($picture) {
print $picture;
}?>
<?php if ($page == 0) { ?><h2 class="title"><a href="<?php print $node_url?>"><?php print $title?></a></h2><?php }; ?>
<div class="content"><?php print $content?></div>
<?php if ($links) { ?><div class="links">» <?php print $links?></div><?php }; ?>
</div>
</div>
Соответственно все сслыки на файлы которые вы хотите передать в плеер должны содержать атрибут class="media"
Я все добавочные скрипты складирую в директорию misc/FolderName.
А так молодец, хорошее решение
у меня в ИЕ жутко тормозит как сам модуль, так и приведенный выше код - выдает ошибку, что типа надо бы остановить выполнение скрипта, то етсь где-то видимо циклится. Не укого так не было? Может просто другая версию jQuery? Стоит самый последний Drupal 6.9 с последним jQuery - 1.2.6? последняя версия jMedia - и всё равно, неработоспособность в ИЕ. Как быть, как отследить такое - не подскажете? Может у кого было?
jason32 приведенный выше код работает без модуля jQuery и jMedia...
Данный способ вообще не использует дополнительные модули... Только jquery.media.js + плеер + node-media.tpl.php
Спасибо большое. 2 дня искал каким образом реализовать такую возможность.
Только есть вопросы: Под окном плеера прописана ссылка на файл. Как бы ее убрать?
Как сделать так чтобы при открытии страницы, в плеере показывался не черный экран, а кадр из ролика?
Psyh
Пожалуйста, рад что этот способ кому то интересен...
По поводу ссылки на файл не задавался таким вопросом, так как я это делал для сайта гос. организации и например там часто нет флешплеера, а когда есть ссылка ролик можно просто скачать...
По поводу ссылки на файл то насколько я знаю от Друпала тут ничего не зависит это функция самого плеера, так как плеер подгружает видеоролик, и этот кадр фильма обрабатывает ActionScript флеша... поищите может быть найдете плеер который сам вставляет кадр..
<?php
function phptemplate_preprocess_node(&$vars, $hook) {
if ($vars['page'] && $vars['type'] == 'video') { // Если ваш тип материала 'video'
drupal_add_js( 'jQuery(function($) {$(\'.filefield-file .filefield-icon\').hide(); $(\'.filefield-file div div\').hide();});', 'inline', 'header');
}
}
?>
А не подскажете как убрать значок видео и заголовок видео, когда плеер вставлен на страницу как блок?
Я пробую вместо "page" писать "block" но ничего не получается.
Решено: Нужно было вместо "page" писать "view" )))))
Подскажите где можно забрать лизензионный JW_Viral_Plugin. У меня на паузе постоянно окно с рекламой выскакивает
(сайт на Друпале)
Размер окна задается в jquery.media.js строками (450x450 - значение в оригинальном файле)
...
width: 450,
height: 450,
...
};
Saboteur@drupal.org
Странно не видел даже что есть с рекламой... я скачивал отсюда никакой рекламы нет...
Спасибо, заработало. Я ссылку на видео вставлял простым текстом, без тега ссылки... поэтому был этот недостаток
2 Saboteur@drupal.org Попробуй любой другой плеер, только в скриптах путь к нему измени.
Затестил
если убрать вот эти две строки
<?php $.fn.media.defaults.flvPlayer = \'/player-viral.swf\';
$.fn.media.defaults.mp3Player = \'/player-viral.swf\';?>
то у меня не подгружается сам плеер, пришлось вернуть.
Зачет!
У меня на паузе постоянно окно с рекламой выскакивает
Видимо залили лишние файлы из дистрабутива плеера.
А кто-нибудь может подсазать, можно ли задавать параметры плеера прямо в ноде?
Спасибо за нормальное описание. у меня наконец-то хоть что то получилось
только у меня есть еще два чайниковских вопроса
1 - как правильно вставлять ссылку, что еще за тег ссылкой. Сейчас у меня {EMBED} используется (видео файл у меня лежит в корне хостинга)
2 - как сделать чтоб файл не начинал сразу проигрываться.
А как можно заменить "черный экран" на какую-нибудь превью-картинку?
<a href="{свой путь}.flv" title="что надо" class="media"> текст или без него</a>
в node-media.tpl.php заменить
$.fn.media.defaults.autoplay = 1;
на
$.fn.media.defaults.autoplay = 0;
Спасибо за решение, как раз этого и не хватало!
Остался один вопрос, а как сделать так чтобы звуковые файлы проигрывались тут же на текущей странице сайта, а не на новой?
Или такое не с этм плеером?
Поставил еще и Uppod, но он мало того что грузится на новой странице так ему на каждый вариант загрузки надо еще и новый скрипт генерить и в файлы запихивать..
Что скажете, товарищи спецы?
Все сделала как написано, файл flv в Опере и FireFox вовыводится плеер и проигрывает, а вот в IE даже ссылку с flv файлом не отображает! Подскажите что делать?
Нашлось решение для проигрывания видео в IE ?
Везде работает кроме IE
Какая версия IE?
В ИЕ7 на Win x64 нет поддержки флэша в броузере. Хотя, смотря какая версия виндов.
мне равится этот способ. псе очень просто.
гружу видео через сск.
поскажите, как сделать изображение в плеере, например из 10 секунды в видео.
Мне кажется это должен делать сам плеер вставлять картинку (я делал на одном плеере вы поищите может найдете другой) так как вставлять картинку отдельно - программно мне кажется слишком большой гемор... да и стоит ли оно того?? грузить лишние картинки, создавать новые поля в базе, делать новые запросы к бд...
все" отлично
еще вопросик
этот плеер можно выкладывать:
1. со стороны?
2. обязательно надо загружать на сервер?
Плейер может лежать где угодно, хоть у вас, хоть на Амазоне
Мне кажется это должен делать сам плеер вставлять картинку
Плейер этого делать не может, ибо все параметры проигрывателя ему передаются в явном виде в flashvars. Неплохой подход используется в модуле flashvideo — там картинка ищется в теле ноды в момент формирования параметров плейера.
Кто нибудь смог прилепить картинку из ноды к плееру?
А как сделать чтобы для mp3 выбирался другой размер плеера?
кто-нибудь с этим разобрался?
Подскажите...
я не разбирался но очевидно надо в node-media.tpl.php проверять тип файла и по разному инициализироваьт плеер.
Хинт: чтобы mp4-файлы также воспроизводились через player-viral.swf (вызываемый по умолчанию плеер квик-тайм тормознут и убог) надо изменить jquery.media.js:
строку
types: 'flv,mp3,swf',
на
types: 'flv,mp3,swf,mp4',
строку
types: 'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',
на
types: 'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',
строку
$.fn.media.flv = $.fn.media.mp3 = function(el, opts) {
на
$.fn.media.flv = $.fn.media.mp3 = $.fn.media.mp4 = function(el, opts) {
Спасибо, правда я решил тем, что видео теперь вставляю emfield, а аудио swf tools
emfield может проигрывать приатаченные файлы? что-то я не нашел как
ну мне больше нужно, чтобы пользователь ссылки вставлял. А вообще, мне кажется можно, я все функции не включал
благодарю за материал, оч помогло, только один вопрос - возможно заменить Media Player from Jeroen Wijering на какой-нить более элегантный для mp3 проигрывания? выдергивал сам плеер из модуля mp3 player, но он не воспроизводит треки (что и не удивляет)
обнаружил проблему (или баг?) - плеер у некоторых мп3 показывает неправильное время воспроизведение, у некоторых треков тайм линия, скажем 2 минуты, когда трек 4, а у некоторых 7 минут, когда трек 6:30, соответственно плеер и воспроизводит либо только часть трека, либо оставшееся время тишина... есть способ лечения?
штатный телепат говорит нам что плеер неправильно вычисляет длину VBR-треков... нуу, меняйте плеер
в том-то и дело, что vbr норм работают, а вот 320 глючит... посоветуйте другой плеер
уф, сделал, что хотел) сменил плеер на 1pixelout, все стало замечательно работать, для тех, у кого возникнет такая же потребность - http://drupal.org/node/244524 (15 пост)
решение правда там указывается в старом коде jquery.media.js, в последней же версии заменяем эти строки:
меняем на - opts.src = opts.src
339 строка - opts.flashvars = $.extend({}, srcObj, opts.flashvars );
меняем на - opts.flashvars = $.extend({}, { soundFile: src }, opts.flashvars );
У меня следующая проблема:
на сайте есть навигация вида:
ссылка ссылка ссылка.... ссылка
к сайту прикручен ява-скрипт, который при наведении мыши на элемент навигации отображает скрытую картинку. Все вроде замечательно, но вот когда я прикрутил скрипт jquery.media.js для показа видео начались проблемы со старым скриптом.
В материалах типа "media", в которых, собственно, и действует jquery.media.js элементы навигации со старым скриптом стали отображаться фреймами, в которые грузится содержание страницы, на которую ведет ссылка элемента.
Вот старый Скрипт (вынесен в отдельный файл header.js:
browser_name = navigator.appName;
browser_version = parseFloat(navigator.appVersion);
if (browser_name == "Netscape" && browser_version >= 3.0) { roll = 'true'; }
else if (browser_name == "Microsoft Internet Explorer" && browser_version >= 3.0) { roll = 'true'; }
else { roll = 'false'; }
function load(location){
return image;
}
if (roll == 'true'){
tr=new Image();
tr.src="on.gif";
}
function show(where){
if (roll == 'true'){
stored=where;
storedLocation=document.images[where].src;
document.images[where].src="on.gif";
}
}
function hide(){
if (roll == 'true') document.images[stored].src=storedLocation;
}//-->
вот таким образом скрипт прикручен к элементам навигации:
src="0.gif" name="im3" align="middle" border="0"><br>
<a href="fotoalbum/?q=image/tid/1" target="_blank"
onmouseover="show('im3')" onmouseout="hide()">Альбом</a>
В чем может быть проблема?.
Вот страница http://doshkolenok.com/fotoalbum/?q=node/179
Спасибо за ответы
Кто подскажет, у меня просто белый квадрат вместо проигрывания - не могу побороть!
Все сделал как надо:
1 Вставил код
<?php
drupal_add_js('jquery.media.js');
drupal_add_js('swfobject.js'); drupal_add_js('if (Drupal.jsEnabled) {
$(document).ready(function() {
$.fn.media.defaults.flvPlayer = \'/player-viral.swf\';
$.fn.media.defaults.mp3Player = \'/player-viral.swf\';
$.fn.media.defaults.autoplay = 1;
$.fn.media.defaults.params = { allowfullscreen: true };
$(\'.media\').media();
});
}', 'inline');
?>
2 Поменял 2 стройки в яваскрипте с
//mp3Player: 'mediaplayer.swf',
flvPlayer: 'player-viral.swf',
mp3Player: 'player-viral.swf',
3 Скачал и скопировал
1)jquery.media.js c
http://plugins.jquery.com/project/media
2)6 файлов в архиве
player-viral.swf
preview.jpg
readme.html
swfobject.js
video.flv
yt.swf
с сайта
http://www.longtailvideo.com/players/jw-flv-player
Поставил ссылку в ноде
flash
Яваскрипты все подключаются... и ссылка на файл в ноде верная.
Вроде бы все просто но не работает? В какую сторону копать.
Tureckiy Плеер не грузится если файл в формате swf и т.д. Т.к. он там не нужен. А если с видео проблема, тогда проверь пути к файлам плеера.
Интересный вопрос
Как обойти .htaccess когда подгружаешь видео с других хостов, где автоматом начинается скачивание при переходе по прямой ссылке к видео? Кто-нибудь решал такой вопрос?
Спасибо, то что нужно !!!
кстати uppod клевая штука, и почти даром
Добрый день!
Вставляя в ноду flv файл вышеописанным способом столкнулся со следующей проблемой
как я понимаю друпал преобразовывает "/" в "%2F" и как результат "ролик не может быть загружен" как решить данную проблему?
Да вот ещё, что создал статичную страницу в корне сайта всё загружается и работает..., а тут не хочет ни в какую((
ну можно попробовать сделать input type который разрешает все, без фильтров ..
пробовал) не помогает и так стоит формат ввода Full HTML
Видео реализовал с помощью такой связки:
CKK + Video + SWF Tools + Flow Player.
Всё отлично заливает, конвертит и показывает.
Только модуль Video следует брать последний - тот который 6.x-4.0-rc1 ибо предидущий кривоват.
Подскажите новичку. Как сделать чтобы ссылка выводилась с сlass-ом?
<a class="media" href="http://сайт/video/название_файла.flv">Видюха</a>
Хорошее решение, но только не работает в ИЕ и не понятно как вставить картинку.
Придется искать альтернативы, хотя и испробовал уже разные решения, нужен либо плейлист, либо вот так с сылками, либо filefield сск
Буду искать дальше
А как сделать, чтобы класс добавлялся автоматически к ссылкам в данном типе материала?
Все таки остановлюсь на этом, только изображение научится вставлять надо, а лучше кадр.
Может кто прикручивал?
Подскажите пожалуйста новичку - когда на главной странице все отлично работает, а стоит только перейти на страницу с видео - появляется кулебяка(у меня получилс\ какой-то сайт-в-сайте=))
как сделать чтобы на отдельных страницах тоже нормально проигрывалось?
снимаю вопрос - просто прописал путь абсолютные(вроде так называется), теперь все работает=)))
а это что за открытие модули?
https://github.com/benced/anarchotv/tree/master/drupal5/modules
https://github.com/benced/anarchotv/commit/0546f5247cf4440a213a1746f6cc2... вообще открытый?
https://github.com/benced/anarchotv/tree/master/drupal5/modules/aggregator
и это 6или 5 модуль?
где тут модуль плеера прописан?
http://anarchotvdrive2.org/drupal5/?q=en/node/3098 этот и
http://anarchotvdrive2.org/drupal5/?q=en/node/20829
и что за статика? https://github.com/benced/anarchotv/commit/0546f5247cf4440a213a1746f6cc2...
Видео вставляется а mp3 не хочет, подскажите причину.
Проверял несколько раз все вроде правильно???
да да как бы все тоже самое но с мп3 плеером сделать...
<?php
function phptemplate_preprocess_node(&$vars, $hook) {
if ($vars['page'] && $vars['type'] == 'video') { // Если ваш тип материала 'video'
drupal_add_js( 'jQuery(function($) {$(\'.filefield-file .filefield-icon\').hide(); $(\'.filefield-file div div\').hide();});', 'inline', 'header');
}
}
?>
Вставляю данный код в node.tpl.php. Вроде все правильно, но значок и подпись с именем файла никак не исчезает. подскажите, может еще нужно что-то вставить, чтобы заработало?
Не городи огород (предложенный код по идее надо в template темы засунуть). Попробуй так:
drupal_add_js( 'jQuery(function($) {$(\'.filefield-file .filefield-icon\').hide(); $(\'.filefield-file div div\').hide();});', 'inline', 'header');
?>
Нужно лишь поменять размеры окна плейера, и вставить в шаблон что-то вроде
drupal_add_js('if (Drupal.jsEnabled) {
$(document).ready(function() {
$.fn.media.mapFormat(\'mp3\',\'/mediaplayer.swf\');
$.fn.media.defaults.params = { allowfullscreen: false };
$(\'a\').media();
});
}', 'inline');
?>
*слезы счастья*
все бы такие темы на друпал.ру были! Спасибо!
Ребята, подскажите пожалуйста, почему может не работать прокрутка и время видеоролика вообще не считает? Установил как в мануале.
глянуть можно тут ____http://bt-sbor.ru/node/68
Другую версию плейера не пробовали?
а у меня беда с Mp4 видео-просто белое окно в котором есть звук - а картинка никак не хочет работать....
А для 7-го drupal все также? в то я пытаюсь поставить, но плеер не отображается. выводиться просто обычная ссылка
На семерке все иначе