Перейти к содержимому
Русский язык для Invision Community 5

Как сделать чтоб при прикреплении видео к посту отображалась прямая ссылка на него?

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

Я получаю тег

Нужно чтоб под этим

--------------------------------------------------

xxxxxxx.mp4

x.xx MB Добавить в сообщение | Удалить файл

--------------------------------------------------

была ссылка на сам файл. Пример

--------------------------------------------------

xxxxxxx.mp4

x.xx MB Добавить в сообщение | Удалить файл

Ссылка: [http://xxxxx.xx/uploads/xxxx/xxxx.mp4]

--------------------------------------------------

Рекомендованные сообщения

А разве видио не встраивается по дефолту?

http://www.youtube.com/watch?v=8wchi7i6Ru8

 

Просто кнопкой для мультимедиа.

 

А ссылку на сам файл можно добавить отдельно

  • Автор

Это видео с ютуба. А мне надо для того которое прикрепляется к сообщению через аттач.

Ну или с другого сайта но по прямой ссылке типа http://site.com/xxx/xxx/video.mp4

Ну или с другого сайта но по прямой ссылке типа

Это у меня реализована и работает. Давно собираюсь выложить решения в блог, все не как. Постараюсь выложить в выходные.

 

Есть решения от Ritsuka для звуковых файлов, я добавил поддержку видео, но умер компьютер и код остался лежит в недрах винчестера.

Не успел поставить и к себя на сайт.

Проще заново написать. Возможно в выходные.

Система аттачей придумана таким образом, чтобы контролировать доступ к файлам. Пользователю никогда не дается прямая ссылка на залитый файл на сервере. Более того, залитый файл специальным образом переименовывается и прячется в случайно сгенерированную директорию. В шаблоны отдается уже "секретная" ссылка. Поэтому, если вы захотите выводить реальный путь, вам как минимум придется редактировать скрипты форума.

 

Для видео и аудио в аттачах есть готовое решение. Давно как-то кидал модифицированный шаблон на IBR, с тех пор их техподдержка его всем впаривает.

 

Нужно изменить шаблон Темы > Show_attachments:

<php>
$url = urlencode("{$this->settings['base_url']}app=core&module=attach&section=attach&attach_id={$data['attach_id']}");
$path_info = pathinfo($data['attach_file']);
$data['ext'] = strtolower($path_info['extension']);
</php>

<a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}"><img src="{$this->settings['public_dir']}{$data['mime_image']}" alt="{$this->lang->words['attached_file']}" /></a> <a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}">{$data['attach_file']}</a> <span class='desc'><strong>({$data['file_size']}, {$this->lang->words['attach_hits']} {$data['attach_hits']})</strong></span>

<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">
<br /><object type="application/x-shockwave-flash" data="{$this->settings['board_url']}/public/player/flvplayer.swf" width="420" height="340">
       <param name="movie" value="{$this->settings['board_url']}/public/player/player_flv_maxi.swf" />
       <param name="allowFullScreen" value="true" />
       <param name="FlashVars" value="flv={$url}" />
</object><br />
</if>

<if test="$data['ext'] == 'mp3'">
<br /><object type="application/x-shockwave-flash" data="{$this->settings['board_url']}/public/player/flvplayer.swf" height="60" width="400">
<param name="wmode" VALUE="transparent" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="movie" value="{$this->settings['board_url']}/public/player/mp3.swf" />
<param name="FlashVars" value="way={$url}&showstop=1&swf={$this->settings['board_url']}/public/player/flvplayer.swf&w=470&h=70&time_seconds=0&autoplay=0&q=1&skin=grey&volume=50&comment=Слушаем музыку!" /></object><br />
</if>

 

И положить в указанные папки /public/player/ соответствующие плееры.

Для видео и аудио в аттачах есть готовое решение.

ГМ.

<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">

Я сохранял, точно другой код. Этот и переделывать не надо. Только плеер заменить и все. :)

  • Автор

Ritsuka, Ph-A, Спасибо. Сейчас попробую.

  • Автор

Работает но не совсем...

Я использую другой плеер.

Аудио воспроизводится, а вот видеоне хочет...

Вот сам код

<php>
$url = urlencode("{$this->settings['base_url']}app=core&module=attach&section=attach&attach_id={$data['attach_id']}");
$path_info = pathinfo($data['attach_file']);
$data['ext'] = strtolower($path_info['extension']);
</php>
<a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}"><img src="{$this->settings['public_dir']}{$data['mime_image']}" alt="{$this->lang->words['attached_file']}" /></a> <a href="{parse url="app=core&module=attach&section=attach&attach_id={$data['attach_id']}" base="public"}" title="{$this->lang->words['attach_dl']}">{$data['attach_file']}</a> <span class='desc'><strong>({$data['file_size']}, {$this->lang->words['attach_hits']} {$data['attach_hits']})</strong></span>
<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">
<br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="600" height="400" id="Player-e4efcf5b557c82ee0bd564c1a2599d7b">
<param name="movie" value="http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" />
<param name="allowFullScreen" value="true" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000000" />
<param name="wmode" value="opaque" />
<embed src="http://cmailik.ru/engine/classes/flashplayer/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" quality="high" bgcolor="#000000" wmode="opaque" allowFullScreen="true" width="600" height="400" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object><br/>
</if>
<if test="$data['ext'] == 'mp3'">
<br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="425" height="30" id="Player-17293be98d1d7445115d5c0acd44cea2">
<param name="movie" value="http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&showPlayButton=false&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" />
<param name="allowFullScreen" value="false" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&showPlayButton=false&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000" quality="high" wmode="transparent" allowFullScreen="false" width="425" height="30" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object><br />
</if>

Ну или с другого сайта но по прямой ссылке типа http://site.com/xxx/xxx/video.mp4

Ну если сам метр ответил. И я не буду затягивать.

 

Исторически у меня на всех проектах для проигрывания используется JW Player. Естественно мне, проще всего и для IP.Board использовать его.

 

Сам плеер и вызывающий его яваскрипт загружается на сервер. В моем случае это: forum/public/player/

 

Добавляем поддержку mp4.

 

Панель управления > Внешний вид > Содержимое сообщений > BB-коды > Управление BB-кодами --> добавить

 

Название

MP4

 

Медиа-тег

{1}.mp4

 

Шаблон замены медиа-тега

<div id="container"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
<script type="text/javascript" src="/forum/public/player/swfobject.js"></script>
<script type="text/javascript">
	var s1 = new SWFObject("/forum/public/player/player.swf","ply","640","480","9","false","#FFFFFF");
	s1.addParam("allowfullscreen","true");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("flashvars","file=$1.mp4");
	s1.write("container");
</script>

 

Добавляем поддержку flv.

 

Название

flv

 

Медиа-тег

{1}.flv

 

Шаблон замены медиа-тега

<div id="container"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
<script type="text/javascript" src="/forum/public/player/swfobject.js"></script>
<script type="text/javascript">
	var s1 = new SWFObject("/forum/public/player/player.swf","ply","640","480","9","#FFFFFF");
	s1.addParam("allowfullscreen","true");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("flashvars","file=$1.flv");
	s1.write("container");
</script>

 

Естественно bb коды легко переделываются под поддержку другого плеера.

 

Как пример поддержка flv для Flowplayer

 

<script type="text/javascript" src="/forum/public/player/flowplayer-3.2.4.min.js'></script>
<a href='$1.flv'style='display:block;width:640px;height:338px;' id='player'></a>
<script>
flowplayer('player', '/forum/public/player/flowplayer-3.2.4.swf', {
clip:  {
   	autoPlay: false,
   	autoBuffering: true
}
});
</script>

У вас в шаблоне два разных URL плеера:

http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000
http://cmailik.ru/engine/classes/flashplayer/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000

 

Исправьте. И flash не кроссдоменен, пока не укажаете это специально с помощью crossdomain.xml.

  • Автор

У вас в шаблоне два разных URL плеера:

http://help-icq.ru/public/player/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000
http://cmailik.ru/engine/classes/flashplayer/media_player.swf?MediaLink={$url}&defaultMedia=1&logo=http://help-icq.ru/public/player/watermark.png&showPlayButton=true&playOnStart=false&backgroundBarColor=0x1A1A1A&btnsColor=0xFFFFFF&outlineColor=0x666666&outputBkgColor=0x1A1A1A&outputTxtColor=0x999999&loadingBarColor=0x666666&loadingBackgroundColor=0xCCCCCC&progressBarColor=0x000000&volumeBackgroundColor=0x666666&volumeStatusBarColor=0x000000

 

Исправьте. И flash не кроссдоменен, пока не укажаете это специально с помощью crossdomain.xml.

Спасибо, исправлю. Но это не критично так как плеер есть в обоих местах.

Что такое кроссдоменность, зачем и как нужно указывать с помощью crossdomain.xml?

======================

Ссылку исправил, видео всё равно не работает...

Через BB-код с разными адресами swf видео работает...

======================

С этим

<if test="in_array($data['ext'], array('mp4', 'avi', 'flv', '3gp')">
<br /><object type="application/x-shockwave-flash" data="{$this->settings['board_url']}/public/player/flvplayer.swf" width="420" height="340">
       <param name="movie" value="{$this->settings['board_url']}/public/player/player_flv_maxi.swf" />
       <param name="allowFullScreen" value="true" />
       <param name="FlashVars" value="flv={$url}" />
</object><br />
</if>

Даже плеер не отображается...

  • Автор
post-44346-0-10970500-1301564819_thumb.jpg

ИМХО если ошибок нет, надо смотреть документацию плеера. Не скачав его, нечего не скажу.

Качать сейчас, нет времени.

  • 1 год спустя...

Извините, что не создал свою тему, вроде бы проблемка, имеет что-то общее с этой темой.

В общем как мне вставить .mp3 на форум IPB 3.2.3 , так что бы оно проигрывалось в плеере ?

Вроде бы простая вещь, а никак до меня не дойдет.

[media]http://site.ru/file.mp3[/media]

Создайте аккаунт или войдите в него для комментирования

Важная информация

При использовании данного сайта, вы согласаетесь с Условия использования и Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим..

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.