我是PHP和JW播放器的新手。
我有以下代码在php中读取视频文件并在浏览器中将其作为视频文件播放:
loadfile.php
<?php
header("pragma : no-cache");
header("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Content-Description: File Transfer");
header("Content-Type: video/mp4");
header("Content-Location: videos/testvid.mp4");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize("videos/testvid.mp4"));
readfile("videos/testvid.mp4");
?>
JW播放器可以通过直接路径播放视频文件,如下所示:
<div id="mediaplayer"></div>
<script type="text/javascript">
jwplayer('mediaplayer').setup({
'flashplayer': 'jwplayer/jwplayer.swf',
'file': 'videos/testvid.mp4',
'id': 'playerID',
'width': '480',
'height': '320'
});
</script>
但是,我需要jw播放器在loadfile.php中播放视频而不是直接路径。换句话说,我需要在流式传输后将视频传递给JW播放器并在php中读取。我怎样才能做到这一点?
更新
我正在使用JW 6
答案 0 :(得分:5)
由于您使用的是JW6,因此在此代码行下:
'id': 'playerID',
添加以下内容:
'type': 'mp4',
现在,php文件应该作为播放器的“文件”变量,就好了。
答案 1 :(得分:3)
尝试:
clearstatcache();
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: video/mp4");
header("Accept-Ranges: bytes");
header("Content-Length: ".filesize("videos/testvid.mp4"));
readfile("videos/testvid.mp4");
我有相同的场景(从php读取视频并使用jwplayer播放)并且此配置有效。
<强> JS 强>
在客户端,我将jwPlayer嵌入为SWFObject。检查它是否对您有用:
<script type="text/javascript">
$(document).ready(function(){
var so = new SWFObject('path/to/jplayer.swf','mpl',640,480,'9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addParam('wmode','opaque');
so.addVariable('controlbar','over');
so.addVariable('provider','video');
so.addVariable('autostart','true');
so.addVariable('file','loadfile.php');
so.write('videoPlayer');
});
</script>
<body>
<div id='videoPlayer'></div>
</body>
还尝试使用绝对路径(以防万一)......