PHP旋转视频

时间:2014-02-11 14:31:40

标签: php

我有以下代码可以在视频之间随机旋转以显示在目录中。我试图使它顺序而不是随机(1.mp4,然后2.mp4等),但当我替换asort()的rand()函数时,我得到一个错误。有任何想法吗? 感谢。

$video_count = 0;
    if(isset($_SESSION['video_count'])){
    $video_count = $_SESSION['video_count'];
}

$video_count++;
$_SESSION['video_count'] = $video_count;

$folder = './videos';
$extList = array();
$extList['mp4'] = 'movie/mp4';


$img = "";
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
    $file_info = pathinfo($file);

    if (isset( $extList[ strtolower( $file_info['extension'] ) ] )){
        $fileList[] = $file;
    }
}
closedir($handle);
$rand_id = (int)rand(0,count($fileList)-1);

$video_id =$fileList[$rand_id];

并表示:

    <video width="1000" height="565" autoplay id="video" loop="true">
  <source src="videos/<?= $video_id ?>" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  <source src="movie.webm" type="video/webm">
  <object data="videos/<?= $video_id ?>" width="624" height="352">
    <embed src="movie.swf" width="624" height="352">
  </object> 
</video>

2 个答案:

答案 0 :(得分:1)

您不需要使用asort,这对于关联数组来说是特殊的。使用排序。 然后你可以使用yor会话变量$ video_count每次选择一个项目。

...
closedir($handle);
sort($fileList);
$video_id =$fileList[$video_count];

答案 1 :(得分:0)

怎么样:

$files = glob($folder.'/*.mp4');

shuffle($files);

// if you need just filename
$video_id = pathinfo(reset($files), PATHINFO_FILENAME);
// or just file with ext
$video_id = basename(reset($files));