JW Player 6 - 基于文件夹中的视频创建自动播放列表

时间:2013-04-21 00:01:35

标签: php automation jwplayer

我有什么

  • PHP 5.3
  • JW Player 6.4

是谁
  • 我仅将此用于验证视频,而不是编写播放列表的代码。我将所有视频放在一个文件夹中,然后显示在播放列表中,非常简单。

问题

代码的第一部分:

 <?php
$path ="./webvideos/test/";
$path2="./webvideos/test/";
$folder = opendir($path);
$start="<asx version='3.0'>n<title>Example ASX playlist</title>";
$Fnm = "$path./playlist.xml";
$inF = fopen($Fnm,"w");
fwrite($inF,$start."n");
while( $file = readdir($folder) ) {
     if (($file != '.')&&($file != '..')&&($file != 'index.htm')){
     $result="<entry>n<title>$file</title>n<ref href='$path2$file'/>n<param name='image' value='preview.jpg'/>n</entry>n";
         fwrite($inF,$result);
     }
}
fwrite($inF,"</asx>");
closedir($folder);
fclose($inF);
?>

我已经在“test”文件夹中检查了XML文件,它就在那里,所以那里没有问题。

以下代码的这部分允许您下载视频,(右键单击并保存)。这也有效。

<?php
$dir = opendir("$path");
while($file = readdir($dir)) {
if(($file == "index.htm") || ($file == ".") || ($file == "..")){} else {
echo
"<a title='".$file."' href='".$path.$file."'>".$file."</a><br/>";
}
}
closedir($dir);
?>

以下代码适用于自己的玩家。

<div class="video" id="player"></div><!--/video-->
<script>
    jwplayer("player").setup({
    height: 550,
    listbar: {
    position: 'bottom',
    size: 200
    },
    width: 768,
    playlist:'playlistfile=playlist.xml&image=preview.jpg&playlist=bottom',             

});
</script>

这里我不确定,我尝试了各种不同的可能性,但没有解决方案。即无法加载播放列表是我得到的常见错误,一旦我无法加载RSS提要。我不是PHP的专家,但它似乎是播放器部分,因为我测试了XML读取,我也能够下载视频。我发送了一封支持电子邮件,但仍在等待,无论哪种方式,我发现这对我来说是一个无价的工具,我相信它会帮助其他视频制作。

2 个答案:

答案 0 :(得分:1)

在我看来,正在生成的播放列表是ASX播放列表。 JW6仅支持mRSS。

答案 1 :(得分:1)

工作脚本:

<?php
$path ="videos/test/";
$xmlfile = "$path/playlist.rss";
$path2="http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."$path";
$folder = scandir($path);
$files = array();
foreach($folder as $file){
    if($file == '.' OR $file == '..' OR $file == 'index.htm'){}else{
        $files[$file] = filemtime($path.'/'.$file);     
    }
}
ksort($files);
//use asort to sort from old to new
$output="<rss version='2.0' xmlns:jwplayer='http://rss.jwpcdn.com/'><channel>";
foreach($files as $file => $date){
$output .= "" . PHP_EOL . 
"<item>" . PHP_EOL . "<title>$file</title>" . PHP_EOL . "<description>$file</description>" . PHP_EOL . "<jwplayer:image>./preview.jpg</jwplayer:image>" . PHP_EOL . "<jwplayer:source file='$path/$file' />" . PHP_EOL . "</item>" . PHP_EOL . "" . PHP_EOL;
}
$output .= "</channel>
</rss>";
file_put_contents($xmlfile,$output);
?>