1. 程式人生 > >HTML5純Web前端也能開發直播,不用開發服務器(使用face2face)

HTML5純Web前端也能開發直播,不用開發服務器(使用face2face)

當前時間 button dev 初始化 分享 tlist start 用戶id span

前段時間轉載了某位大神的一篇文章,開發Web版一對一遠程直播教室只需30分鐘 - 使用face2face網絡教室。非常有意思。看起來非常簡單,但作為一名前端開發人員來說,還是有難度。因為要開發服務器端的接口,這對我這種前端初學者來說就無能為力了。

無意中註意到,在face2face的官方文檔上,其實還介紹了一種純前端的開發方式,使用這種方式,不用寫任何服務器代碼,也能做直播。

face2face的文檔在這裏:http://face2face.net.cn/help/1710.htm 。

下面我就介紹一下是如何用HTML5純Web前端開發直播的。

首先進入face2face的官網,登錄後(不用註冊也行,用QQ登錄就行了),點擊頂部的“1對1教室”,然後創建一個教室(因為face2face是專門做直播教室的,所以是“創建教室”)。創建完成後,會提示繼續為教室添加學員,可以不用理會,直接跳過就行了。

可以將一個教室當成是一個直播間。

記住創建的教室的“教室編號”,在後面開發時有用。然後點擊“排課”,就是設置用戶什麽時候可以進入這個直播間。

技術分享圖片

在排課時設置一個時間,為了方便測試,這個時間不要設置得太遠了,最好是在當前時間附近。

排課完成後,會在頁面中顯示剛剛創建的排課,有一個“通行證”,記住它,在後面開發時有用。

技術分享圖片

準備工作完畢了,可以開始開發自己的網頁了。

<!DOCTYPE html>
<html>
<head>
    <meta charset
="utf-8" /> <title>HTML5純Web前端開發直播</title> <style type="text/css"> html, body { width:100%; height:100%; margin:0px; padding:0px; } #start { padding:50px 0px; text-align:center
; } #room { width:100%; height:100%; display:none; } </style> </head> <body> <div id="start"> <div> 用戶ID:<input id="uid"/> </div> <div> 通行證:<input id="pass"/> </div> <div> <button id="enter">進入</button> </div> </div> <div id="room"></div> </body> </html>

在上面的代碼中,start是用戶打開網頁後見到的內容,提示用戶輸入用戶ID和通行證。room是用來放直播間的,剛開始是隱藏的,當用戶輸入完成,並點擊“進入”後,才將它顯示出來。

頁面運行後是這樣子的:

技術分享圖片

然後在頁面中引入face2face的open.js,並給enter按鈕添加click事件。

    <script src="https://face2face.net.cn/js/open.js"></script>
    <script>
        document.getElementById(enter).addEventListener(click, function () {
            var div_start = document.getElementById(start),
                div_room = document.getElementById(room),
                txt_uid = document.getElementById(uid),
                txt_pass = document.getElementById(pass),
                uid = txt_uid.value,
                pass = txt_pass.value;
            if (uid && pass && (uid == 1 || uid == 2)) {
                div_start.style.display = none;
                div_room.style.display = block;

                $F.open.init({
                    container: div_room,
                    ty: 3,
                    appid: 10043,
                    pass: pass,
                    uid: uid,
                    ismaster: uid == 1 ? 1 : 0,
                    vdo: 0
                });
            }
        }, false);
    </script>

這樣就算開發完畢了,哈哈,非常簡單。

下面對上面的代碼解釋一下。

當用戶點擊enter後,先判斷用戶是否有輸入用戶ID和通行證,並且在這裏我限制了用戶ID只能是1或者2。

如果用戶輸入的數據正確,就將start隱藏,同時將room顯示出來。

然後再調用$F.open.init初始化直播間。

它的幾個參數中,container 是用來放直播間的DOM元素,我用的是room。

ty 在這裏必須傳3,因為我剛創建的教室是1對1教室,它就必須是3。

appid 是剛剛創建的教室的“教室編號”。

pass 是用戶輸入的通行證,就是前面為教室創建排課後得到的通行證。

uid 也是用戶輸入的用戶ID,我這裏限制了只能是1或者2。

ismaster 的值要麽是1,要麽是0,如果是1,表示這個用戶是這個直播間的老師。在face2face的官方文檔中,要求每個直播間必須有一個老師,並且只能有一個老師。在我的代碼中,將用戶ID是1的用戶當作老師。

vdo 我這裏傳的是0,表示用戶進入直播間後默認分享電腦屏幕。這裏的值還可以是1,表示用戶進入直播間後默認分享攝像頭。

運行後,在用戶ID中輸入1,在通行證中輸入之前創建的排課的通行證,點擊enter按鈕後,頁面將會是這樣子的:

技術分享圖片

HTML5純Web前端也能開發直播,不用開發服務器(使用face2face)