Alex Trofimov 12 лет назад
Родитель
Сommit
f200e77827
2 измененных файлов с 28 добавлено и 6 удалено
  1. 4 6
      samples/transcoder_video.php
  2. 24 0
      template/scripts/BxBaseFunctions.php

+ 4 - 6
samples/transcoder_video.php

@@ -70,6 +70,7 @@ require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
 
 bx_import('BxDolLanguages');
 bx_import('BxDolTemplate');
+bx_import('BxTemplFunctions');
 
 $oTemplate = BxDolTemplate::getInstance();
 $oTemplate->setPageNameIndex (BX_PAGE_DEFAULT);
@@ -156,12 +157,9 @@ function PageCompMainCode()
             $sUrlMP4 = $oTranscoderMP4->getFileUrl($r['id']);
             $sUrlWebM = $oTranscoderWebM->getFileUrl($r['id']);
 
-            echo '<h3>' . $r['file_name'] . '</h3>
-                <video controls="" preload="none" autobuffer="" poster="' . $sUrlPoster . '" style="width:100%; height:200px;">
-                    ' . ($sUrlWebM ? '<source type="video/webm; codecs="vp8, vorbis" src="' . $sUrlWebM . '" />' : '') . '
-                    ' . ($sUrlMP4  ? '<source type="video/mp4" src="' . $sUrlMP4 . '" />' : '') . '
-                </video>
-                <hr class="bx-def-hr" />';
+            echo '<h3>' . $r['file_name'] . '</h3>';
+            echo BxTemplFunctions::getInstance()->videoPlayer($sUrlPoster, $sUrlMP4, $sUrlWebM, false, 'height:200px;');
+            echo '<hr class="bx-def-hr" />';
         }
     }
 

+ 24 - 0
template/scripts/BxBaseFunctions.php

@@ -371,6 +371,30 @@ class BxBaseFunctions extends BxDol implements iBxDolSingleton
         else
             return '<i class="sys-icon circle col-green1"></i> ' . ($isMsg ? _t('_sys_on') : '');
     }
+
+    /**
+     * Ouputs HTML5 video player.
+     * @param $sUrlPoster video poster image
+     * @param $sUrlMP4 .mp4 video
+     * @param $sUrlWebM .webm video
+     * @param $aAttrs custom attributes, defaults are: controls="" preload="none" autobuffer=""
+     * @param $sStyles custom styles, defaults are: width:100%; height:auto;
+     */
+    function videoPlayer ($sUrlPoster, $sUrlMP4, $sUrlWebM = '', $aAttrs = false, $sStyles = '')
+    {
+        $aAttrsDefaults = array(
+            'controls' => '',
+            'preload' => 'none',
+            'autobuffer' => '', 
+        );
+        $aAttrs = array_merge($aAttrsDefaults, is_array($aAttrs) ? $aAttrs : array());
+        $sAttrs = bx_convert_array2attrs($aAttrs, '', 'width:100%; height:auto;' . trim($sStyles));
+
+        return '<video ' . $sAttrs . ' poster="' . $sUrlPoster . '">
+                    ' . ($sUrlWebM ? '<source type="video/webm; codecs="vp8, vorbis" src="' . $sUrlWebM . '" />' : '') . '
+                    ' . ($sUrlMP4  ? '<source type="video/mp4" src="' . $sUrlMP4 . '" />' : '') . '
+                </video>';
+    }
 }
 
 /** @} */