1. 程式人生 > >PHP與視訊外掛功能實現

PHP與視訊外掛功能實現

php與視訊播放器外掛的功能,說白了就是前端是播放器的外掛,直接呼叫後端傳遞過來的播放地址,還有其他的一些資訊,比如封面圖面,名稱,播放時間,地址等等。這些需要在後臺把這些封裝起來,可以儲存在資料庫裡,方便呼叫。以上就是思路。想起來是不是很簡單。做起來也差不多咯。 首先,前端引入播放器外掛,這種外掛,網上推薦很多,這裡推薦:視訊播放外掛ckplayer,可以到官網下載的。下載後新增到網站根目錄。

特別提醒:解壓後不要忘了把js資料夾也新增到你的網站根目錄。這個主要是為了各瀏覽器的相容性的,如果不新增,在ie,Firefox上有可能不能用!  


1,首先在頁面頭部引入:
<script src="ckplayer/ckplayer.js"></script>


2,在body部分放一個div:
<div style=" width:660px;margin:0 auto;">  
    <div id="a1"></div>  
</div>   

3,在script中的windows.load時間裡,或者在2步驟的div後面放入一下指令碼:
<script type="text/JavaScript"> 
        var flashvars = {
            f: 'video/card.mp4',//視訊地址  
            //如果你不需要某項設定,可以直接刪除,注意var flashvars的最後一個值後面不能有逗號
            a: '',//呼叫時的引數,只有當s>0的時候有效  
            s: '0',//呼叫方式,0=普通方法(f=視訊地址),1=網址形式,2=xml形式,3=swf形式(s>0時f=網址,配合a來完成對地址的組裝)  
            c: '0',//是否讀取文字配置,0不是,1是  
            x: '',//呼叫xml風格路徑,為空的話將使用ckplayer.js的配置  
            i: 'video/1.jpg',//初始圖片地址  
            d: 'video/1.jpg',//暫停時播放的廣告,swf/圖片,多個用豎線隔開,圖片要加連結地址,沒有的時候留空就行  
            u: 'http://www.vqisoft.com/',//暫停時如果是圖片的話,加個連結地址  
            l: '',//前置廣告,swf/圖片/視訊,多個用豎線隔開,圖片和視訊要加連結地址  
            r: '',//前置廣告的連結地址,多個用豎線隔開,沒有的留空  
            t: '10|10',//視訊開始前播放swf/圖片時的時間,多個用豎線隔開  
            y: '',//這裡是使用網址形式呼叫廣告地址時使用,前提是要設定l的值為空  
            z: 'http://www.ckplayer.com/down/buffer.swf',//緩衝廣告,只能放一個,swf格式  
            e: '2',//視訊結束後的動作,0是呼叫js函式,1是迴圈播放,2是暫停播放並且不呼叫廣告,3是呼叫視訊推薦列表的外掛,4是清除視訊流並呼叫js功能和1差不多,5是暫停播放並且呼叫暫停廣告  
            v: '80',//預設音量,0-100之間  
            p: '0',//視訊預設0是暫停,1是播放  
            h: '0',//播放http視訊流時採用何種拖動方法,=0不使用任意拖動,=1是使用按關鍵幀,=2是按時間點,=3是自動判斷按什麼(如果視訊格式是.mp4就按關鍵幀,.flv就按關鍵時間),=4也是自動判斷(只要包含字元mp4就按mp4來,只要包含字元flv就按flv來)  
            q: '',//視訊流拖動時參考函式,預設是start  
            m: '0',//預設是否採用點選播放按鈕後再載入視訊,0不是,1是,設定成1時不要有前置廣告  
            o: '',//當m=1時,可以設定視訊的時間,單位,秒  
            w: '',//當m=1時,可以設定視訊的總位元組數  
            g: '',//視訊直接g秒開始播放  
            j: '',//視訊提前j秒結束  
            k: '',//提示點時間,如 30|60滑鼠經過進度欄30秒,60秒會提示n指定的相應的文字  
            n: '',//提示點文字,跟k配合使用,如 提示點1|提示點2  
            wh: '',//這是6.2新增加的寬高比,可以自己定義視訊的寬高或寬高比如:wh:'4:3',或wh:'1080:720'  
            ct: '2',//6.2新增加的引數,主要針對有些視訊拖動時時間出錯的修正引數,預設是2,自動修正,1是強制修正,0是強制不修正  
            //呼叫播放器的所有引數列表結束  
            //以下為自定義的播放器引數用來在外掛裡引用的  
            my_url: encodeURIComponent(window.location.href)//本頁面地址  
            //呼叫自定義播放器引數結束  
        };
        var params = { bgcolor: '#FFF', allowFullScreen: true, allowScriptAccess: 'always' };//這裡定義播放器的其它引數如背景色(跟flashvars中的b不同),是否支援全屏,是否支援互動  
        var attributes = { id: 'ckplayer_a1', name: 'ckplayer_a1', menu: 'false' };
        //下面一行是呼叫播放器了,括號裡的引數含義:(播放器檔案,要顯示在的div容器,寬,高,需要flash的版本,當用戶沒有該版本的提示,載入初始化引數,載入設定引數如背景,載入attributes引數,主要用來設定播放器的id)  
        CKobject.embedSWF('ckplayer/ckplayer.swf', 'a1', 'ckplayer_a1', '650', '380', flashvars, params);
        var video = ['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4', 'http://www.ckplayer.com/webm/0.webm->video/webm', 'http://www.ckplayer.com/webm/0.ogv->video/ogg'];
        var support = ['iPad', 'iPhone', 'iOS', 'Android+false', 'msie10+false'];//預設的在ipad,iphone,ios裝置中用HTML5播放,android,ie10上沒有安裝flash的也呼叫html5  
        CKobject.embedHTML5('video', 'ckplayer_a1', 600, 400, video, flashvars, support);
  </script>


呼叫HTML5播放器程式碼
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ckplayer只調用html5播放器</title>
</head>
<body>
<div id="a1"></div>
<script type="text/javascript" src="ckplayer/ckplayer.js" charset="utf-8"></script>
<script type="text/javascript">
    var flashvars={
        p:1,
        e:1,
        hl:'http://movie.ks.js.cn/flv/other/1_0.mp4',
        ht:'20',
        hr:'http://www.ckplayer.com'
        };
    var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4','http://www.ckplayer.com/webm/0.webm->video/webm','http://www.ckplayer.com/webm/0.ogv->video/ogg'];
    var support=['all'];
    CKobject.embedHTML5('a1','ckplayer_a1',600,400,video,flashvars,support);
</script>
</body>
</html>  

可見上面的例子裡,播放器需要的資料都是靜態填上的,如果需要用到PHP,也就是後端,其實就是直接傳遞,渲染資料,前端的flashvars所需要的資料,都可以在後端儲存後動態呼叫。
<?php

public function flashvars($input)
{
    if(empty($input)){
        throw new Exception("引數不存在", 1);
    }

    //獲取資料前提是已經在後臺設定好了資料,這裡直接獲取
    $result = "加入這裡是從資料表裡取出資料";
    $data = [
        'p' => result['p'],
        'e' => result['e'],
        'hl' => result['hl'],
        'ht' => result['ht'],
        'hr' => result['hr'],
        'video' => result['video'], //video這裡可以有多個播放連結地址的
    ];

    /*p:1,
    e:1,
    hl:'http://movie.ks.js.cn/flv/other/1_0.mp4',
    ht:'20',
    hr:'http://www.ckplayer.com'
    var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4','http://www.ckplayer.com/webm/0.webm->video/webm','http://www.ckplayer.com/webm/0.ogv->video/ogg'];
    var support=['all'];*/

    //接下來就是渲染到檢視咯
    return ('/view.html',$data);   //這裡只是做示例,用框架的得用框架的語法來!

}