Здравствуйте, я только начинаю потихоньку познавать азы php. и пока что делаю все так сказать методом тыка и подбора и в большинстве случаев что то да получается но тут видимо такой вариант не пройдет и нужны знания. Вообщем суть вопроса:
вот кусок кода:
function build_vidvk($url) {
$decode_url = $url;
$get = explode( "?", $url );
$get = strtolower( end( $get ) );
$url = '/engine/video.php?'.$get;
global $config;
if (!count($this->video_config)) {
include (ENGINE_DIR . '/data/videoconfig.php');
$this->video_config = $video_config;
}
$get_size = array();
$sizes = array();
$get_size = explode( ",", trim( $url ) );
if (count($get_size) > 1 AND ( stripos ( $get_size[0], "http" ) === false OR stripos ( $get_size[0], "rtmp:" ) === false ) ) {
$sizes = explode( "x", trim( $get_size[0] ) );
$width = $this->video_config['width'];
$height = $this->video_config['height'];
} else {
$width = $this->video_config['width'];
$height = $this->video_config['height'];
}
if (count($get_size) == 3) $url = $get_size[1].",".$get_size[2];
elseif (count($get_size) == 2 AND count($sizes) == 2) $url = $get_size[1];
$thumb = $thumb['1'];
$url = $config['http_home_url'].'engine/video.php?var='.base64_encode($get);
if ( count($sizes) == 2 ) $decode_url = $width."x".$height.",".$decode_url;
$video_url = $url;
$url = array ();
$url = implode( ", ", $url );
$id_player = md5( microtime() );
return "<!--dle_vidvk_begin:{$decode_url}-->
<object id=\"videoplayer-{$id_player}\" type=\"application/x-shockwave-flash\"
data=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" width=".$width." height=".$height.">
<param name=\"allowFullScreen\" value=\"true\" />
<param name=\"allowScriptAccess\" value=\"always\" />
<param name=\"wmode\" value=\"transparent\" />
<param name=\"movie\" value=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" />
<param name=\"flashvars\" value=\"comment="."&st=" . $config['http_home_url'] . "engine/classes/flashplayer/skin.txt&file={$video_url}\" />
</object><!--dle_vidvk_end-->";
}
он передает закодированное видео через ретранслятор в плеер uppod, в новость ставлю вот таким образом
[vidvk=ссылка на видео] и все работает.
но когда делаю через плейлист, вот код:
function build_vidvk($url) {
$decode_playlist=$url;
$get = explode( "?", $url );
$get = strtolower( end( $get ) );
$url = '/engine/video.php?'.$get;
global $config;
if (!count($this->video_config)) {
include (ENGINE_DIR . '/data/videoconfig.php');
$this->video_config = $video_config;
}
$get_size = array();
$sizes = array();
$get_size = explode( ",", trim( $url ) );
if (count($get_size) > 1 AND ( stripos ( $get_size[0], "http" ) === false OR stripos ( $get_size[0], "rtmp:" ) === false ) ) {
$sizes = explode( "x", trim( $get_size[0] ) );
$width = $this->video_config['width'];
$height = $this->video_config['height'];
} else {
$width = $this->video_config['width'];
$height = $this->video_config['height'];
}
if (count($get_size) == 3) $url = $get_size[1].",".$get_size[2];
elseif (count($get_size) == 2 AND count($sizes) == 2) $url = $get_size[1];
$thumb = $thumb['1'];
$url = $config['http_home_url'].'engine/video.php?var='.base64_encode($get);
if ( count($sizes) == 2 ) $decode_url = $width."x".$height.",".$decode_url;
$playlist = explode("||", $url);
foreach ($playlist as $value){
$playl=explode("|", $value);
$playlisting[]="{'file':'".$playl[0]."','comment':'".$playl[1]."'}";
}
$playlisting = implode(",", $playlisting);
$playlisting = "{'playlist':[".$playlisting."]}";
$url = array ();
$url = implode( ", ", $url );
$id_player = md5( microtime() );
return "<!--dle_vidvk_begin:{$decode_playlist}-->
<object id="videoplayer-{$id_player}" type="application/x-shockwave-flash"
data="" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf" width=".$width." height=".$height.">
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf" />
<param name="flashvars" value="comment="."&st=" . $config['http_home_url'] . "engine/classes/flashplayer/skin.txt&pl=".$playlisting."" />
</object><!--dle_vidvk_end-->";
и вставляю в новость вот так
[vidvk=ссылка на видео|Видео №1||ссылка на видео|Видео №2] то в результате получается что воспроизводит только второй файл, и в исходном коде плеера вижу что
<!--dle_vidvk_begin:ссылка на видео|Видео №1||ссылка на видео|Видео №2-->
<object id="videoplayer-3bf430bbdcaa5b4d04de00bf5198a413" type="application/x-shockwave-flash"
data="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" width=720 height=410>
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" />
<param name="flashvars" value="comment=&st=http://www.sait.ru/engine/classes/flashplayer/skin.txt&pl={'playlist':[{'file':'http://www.sait.ru/engine/video.php?var=b2lkPTE2OTU3Nzc0NyZpZD0xNjMwODg4MTkmaGFzaD1lNjBhY2NlYmY1Yzc3MjA1JmhkPTF8wsjE
xc4guTE=','comment':''}]}" />
</object><!--dle_vidvk_end-->
как бы весь плейлист воспринимается как одна ссылка. Перебрал куча вариантов но все безрезультатно.
Уважаемые знатоки php языка программирования, подскажите пожалуйста как указать условие чтобы плейлист обрабатывался верно? Как на приведенном ниже примере, только видео там запускается напрямую без ретранслятора, и все воспроизводится нормально
function build_video($url) {
global $config;
if (!count($this->video_config)) {
include (ENGINE_DIR . '/data/videoconfig.php');
$this->video_config = $video_config;
}
$get_size = array();
$sizes = array();
$get_size = explode( ",", trim( $url ) );
if (count($get_size) > 1 AND ( stripos ( $get_size[0], "http" ) === false OR stripos ( $get_size[0], "rtmp:" ) === false ) ) {
$sizes = explode( "x", trim( $get_size[0] ) );
if (count($sizes) == 2) {
$width = intval($sizes[0]) > 0 ? intval($sizes[0]) : $this->video_config['width'];
$height = intval($sizes[1]) > 0 ? intval($sizes[1]) : $this->video_config['height'];
if (substr ( $sizes[0], - 1, 1 ) == '%') $width = $width."%";
if (substr ( $sizes[1], - 1, 1 ) == '%') $height = $height."%";
} else {
$width = $this->video_config['width'];
$height = $this->video_config['height'];
}
} else {
$width = $this->video_config['width'];
$height = $this->video_config['height'];
}
$decode_playlist=$url;
$playlist = explode("||", $url);
foreach ($playlist as $value){
$playl=explode("|", $value);
$playlisting[]="{'file':'".$playl[0]."','comment':'".$playl[1]."'}";
}
$playlisting = implode(",", $playlisting);
$playlisting = "{'playlist':[".$playlisting."]}";
if (count($get_size) == 3) $url = $get_size[1].",".$get_size[2];
elseif (count($get_size) == 2 AND count($sizes) == 2) $url = $get_size[1];
$option = explode( "|", trim( $url ) );
$url = $this->clear_url( $option[0] );
$type = explode( ".", $url );
$type = strtolower( end( $type ) );
if( preg_match( "/[?&;<\[\]]/", $url ) ) {
return "[video=" . $url . "]";
}
if( $option[1] != "" ) {
$option[1] = htmlspecialchars( strip_tags( stripslashes( $option[1] ) ), ENT_QUOTES );
$decode_url = $url . "|" . $option[1];
} else
$decode_url = $url;
if ( count($sizes) == 2 ) $decode_url = $width."x".$height.",".$decode_url;
if ( stripos ( $url, "rtmp:" ) === false ) $detect_rtmp = false; else $detect_rtmp = true;
if( $type == "flv" or $type == "mp4" or $type == "m4v" or $type == "m4a" or $type == "mov" or $type == "3gp" or $type == "f4v" or $detect_rtmp) {
$url = array ();
$url = implode( ", ", $url );
$id_player = md5( microtime() );
return "<!--dle_video_begin:{$decode_playlist}-->
<object id=\"videoplayer-{$id_player}\" type=\"application/x-shockwave-flash\"
data=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" width=".$width." height=".$height.">
<param name=\"allowFullScreen\" value=\"true\" />
<param name=\"allowScriptAccess\" value=\"always\" />
<param name=\"wmode\" value=\"transparent\" />
<param name=\"movie\" value=\"" . $config['http_home_url'] . "engine/classes/flashplayer/uppod.swf\" />
<param name=\"flashvars\" value=\"comment="."&st=" . $config['http_home_url'] . "engine/classes/flashplayer/skin.txt&pl=".$playlisting."\" />
</object><!--dle_video_end-->";
и вставляю в новость
[video=ссылка на видео|Видео №1||ссылка на видео|Видео №2] видео нрмально воспроизводится плейлистом и выглядит исходный код так
<!--dle_video_begin:ссылка на видео|Видео №1||ссылка на видео|Видео №2-->
<object id="videoplayer-3bf430bbdcaa5b4d04de00bf5198a413" type="application/x-shockwave-flash"
data="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" width=720 height=410>
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="http://www.sait.ru/engine/classes/flashplayer/uppod.swf" />
<param name="flashvars" value="comment=&st=http://www.sait.ru/engine/classes/flashplayer/skin.txt&pl={'playlist':[{'file':'ссылка на видео','comment':'Видео №1'},{'file':'ссылка на видео','comment':'Видео №1'}]}" />
</object><!--dle_video_end-->
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|