装了一个video.js来播放直链

电脑装好了,想休息一下把自己有时候在虎牙上看的几个主播的直播挪过来的,直链地址是找到了,本机Porplayer也可以直接播放,但是就是挪到站点上无法播放,遇到跨域问题了,这个不是我能控制的😓,算了吧,既然已经弄好了就不撤了,将别人写好的shortcode代码修改了一下,可以正常播放了,原代码有逻辑的问题。在第23行多了一个判断语句

if(empty($url)){
    return __('you need to specify the src of the video file', 'videojs-html5-player');
}

作者的本意是想判断有没有m3u8的地址,如果没有的话就提示用户。但是这里逻辑错了,因为这段代码是将所有的播放类型用if去判断的,如果在后台使用除m3u8之外的参数,url是一定为空的。将这段代码删了就可以了。那是不是不能判断呢,其实很单间,用switch改一下代码就清晰了。我就懒得搞了,对我没啥影响。

下面是我修改好的

//videojs
/*
H5播放器Video.js
*/
function videojs_html5($atts) {
extract(shortcode_atts(array(
    'url' => '',
    'webm' => '',
    'ogv' => '',
    'mp4' => '',
    'width' => '',
    'controls' => '',
    'preload' => 'auto',
    'autoplay' => 'true',
    'loop' => 'false',
    'muted' => '',
    'poster' => '',
    'class' => '',
), $atts));
//poster
$poster = 'poster="'.$poster.'"';

//src
$src = '<source src="'.$url.'" type="application/x-mpegURL" />';
if (!empty($webm)) {
    $webm = '<source src="'.$webm.'" type="video/webm" />';
    $src = $src.$webm;
}
if (!empty($ogv)) {
    $ogv = '<source src="'.$ogv.'" type="video/ogg" />';
    $src = $src.$ogv;
}
if (!empty($mp4)) {
    $mp4 = '<source src="'.$mp4.'" type="video/mp4" />';
    $src = $src.$mp4;
}
//controls
if($controls == "false") {
    $controls = "";
}
else{
    $controls = " controls";
}
//preload
if($preload == "metadata") {
    $preload = ' preload="metadata"';
}
else if($preload == "none") {
    $preload = ' preload="none"';
}
else{
    $preload = ' preload="auto"';
}
//autoplay
if($autoplay == "true"){
    $autoplay = " autoplay";
}
else{
    $autoplay = "";
}
//loop
if($loop == "true"){
    $loop = " loop";
}
else{
    $loop = "";
}
//muted
if($muted == "true"){
    $muted = " muted";
}
else{
    $muted = "";
}
//custom style
$output = <<<EOT
<video id="my-player" class="video-js vjs-default-skin vjs-big-play-centered vjs-fluid" width="100%" height="264" {$poster}{$controls}{$preload}{$autoplay}{$loop}{$muted} data-setup='{}'>
    $src
</video>
EOT;
return $output;
}
THE END
分享
二维码
< <上一篇
下一篇>>