視頻點(diǎn)播gssdk使用

問(wèn)題描述:

項(xiàng)目是用koa + gulp框架搭的扛门,代碼年代比較久遠(yuǎn)了沮明。
突然客服反饋了一個(gè)問(wèn)題,視頻播放是用flash打開(kāi)窖逗,啊佑附,chrome最新版已經(jīng)禁止使用flash播放了,蛋疼芽唇。

排查問(wèn)題:

此前對(duì)這個(gè)項(xiàng)目的業(yè)務(wù)不太熟悉匆笤,只能硬著頭皮,一個(gè)個(gè)排查了谱邪。
生產(chǎn)才有此視頻格式炮捧,果斷開(kāi)啟fiddler的代理模式,將生產(chǎn)代碼映射到本地惦银。
再看代碼咆课,發(fā)現(xiàn)html中用的是gs:video-vod
對(duì)這個(gè)標(biāo)簽不熟悉,百度后才知道是gensee提供的
遂找到官方文檔
接下來(lái)首先是熟悉下gssdk的api文檔了

gssdk的使用

  1. 需要引入的javascript
<script type="text/javascript" src="http://static.gensee.com/webcast/static/sdk/js/gssdk-1.3.js"></script>
  1. html 命名空間
<html xmlns:gs="http://www.gensee.com/ec">
  1. Vod Video Widget 標(biāo)簽配置
<gs:video-vod id="videoComponent" site="192.168.0.168"  ctx="webcast" ownerid="f8625298d18042fbbba7a8" uid="55831" uname="user5623" authcode="333333"/>

屬性說(shuō)明:

  • Id: html的元素ID扯俱。(可選)用戶可自行指定书蚪。SDK將以此ID作為Widget ID。
  • ctx: 服務(wù)選項(xiàng)迅栅∈庑#可選值為webcast或training。無(wú)此屬性說(shuō)明默認(rèn)使用webcast服務(wù)读存。
  • site: 站點(diǎn)域名 (必填)Example:www.gensee.com
  • ownerid: webcast服務(wù)下为流,表示點(diǎn)播ID ;training服務(wù)下让簿,表示課件ID(必填)
  • uid: 用戶ID (可選)敬察。若無(wú)此屬性,系統(tǒng)會(huì)自動(dòng)生成隨機(jī)UID尔当。為了避免uid跟Gensee系統(tǒng)的內(nèi)部用戶ID沖突莲祸,該uid要求必須大于1000000000 小于9007199254740992
  • uname: 用戶名稱(可選)。若無(wú)此屬性居凶,系統(tǒng)自動(dòng)生成英文隨機(jī)名稱虫给。若點(diǎn)播(課件)要求登錄藤抡,則用戶名稱必須是系統(tǒng)的登錄賬號(hào)侠碧。注:登錄方式無(wú)論是賬號(hào)密碼或手機(jī)動(dòng)態(tài)密碼,接口只能使用賬戶登錄缠黍。
  • authcode: (可選)校驗(yàn)碼弄兜。對(duì)應(yīng)點(diǎn)播(課件)的web端口令。若點(diǎn)播(課件)要求輸入口令,則此屬性必填替饿。否則不需要语泽。
  • encodetype: 指定authcode的編碼方式。值若為md5视卢,則authcode必須經(jīng)過(guò)MD5的32位小寫(xiě)編碼過(guò)踱卵。不寫(xiě)該屬性或者值為空,則authcode為明文据过。
  • password: (可選)若點(diǎn)播(課件)要求登錄惋砂,此屬性表示登錄賬號(hào)的密碼。
  • group: 分組名稱绳锅。(可選) 適用于不同點(diǎn)播(課件)的Widget放在同一個(gè)頁(yè)面中的情況西饵。Group用來(lái)標(biāo)示哪些Video和Doc Widget屬于同一個(gè)組。相同組內(nèi)的Widget可以共享通訊信息鳞芙。若不填眷柔,SDK會(huì)自動(dòng)將Widget歸屬到默認(rèn)組。
  • k: 若直播開(kāi)啟第三方認(rèn)證功能原朝,則需要k值驗(yàn)證驯嘱。關(guān)于第三方認(rèn)證,請(qǐng)參看Gensee_URL_API_SPEC喳坠。
  • lang: 指定語(yǔ)言宙拉。中文是zh_CN, 英文是 en,日文是ja丙笋。
  • bgimg: 設(shè)置背景圖案谢澈,圖片URL地址。
  • py: 設(shè)置點(diǎn)播是否自動(dòng)播放御板,值為1或者0锥忿。1表示自動(dòng)播放,0則表示手動(dòng)播放(移動(dòng)端該參數(shù)是否生效取決于終端瀏覽器是否兼容)
  • video:設(shè)置點(diǎn)播是否使用音頻還是視頻怠肋,值為:true或者false敬鬓,true表示視頻,false表示音頻笙各,默認(rèn)情況true钉答。
  • btnimg:設(shè)置播放按鈕圖案,圖片url地址杈抢。
  • fullscreen:是否在flash視頻界面上顯示全屏操作按鈕数尿。可選值為true或者false惶楼。默認(rèn)值為false右蹦。(可選)
  • gsver:采用何種技術(shù)的播放器(H5 Flash)诊杆。可選值為2或者其他何陆。默認(rèn)值為空
  • post k值認(rèn)證方式晨汹,get請(qǐng)求或post請(qǐng)求〈ぃ可選值為true或者false淘这。默認(rèn)值為true。(可選)
  1. Doc Widget
  • Id: html的element id巩剖。(可選)
  • site: 站點(diǎn)域名(必填)
  • ownerid: 點(diǎn)播或課件ID慨灭。(必填)
  • group: 分組名稱。作用同Video Widget的Group屬性球及。(可選)
  • ctx: 服務(wù)選項(xiàng)氧骤。可選值為webcast或training吃引。無(wú)此屬性說(shuō)明默認(rèn)使用webcast服務(wù)筹陵。(可選)
  • fullscreen:是否支持flash全屏∧鞒撸可選值為true或者false朦佩。默認(rèn)值為false。(可選)
  • bgcolor: 背景色庐氮。參考值:#00ff00语稠。默認(rèn)為空。(可選)
  • bgimg: 設(shè)置背景圖案弄砍,圖片URL地址仙畦。
  • gsver:采用何種技術(shù)的文檔模塊(SDK1.0/SDK2.0)∫羯簦可選值為2或者其他慨畸。默認(rèn)值為空

定位問(wèn)題

通過(guò)api了解到 gsver會(huì)影響資源的展示
看到資源傳的gsver=1,所以是用的flash播放器打開(kāi)衣式。
再看下代碼中g(shù)sver的實(shí)現(xiàn)

const updateDate = +new Date(2019, 0, 1);
const gsver = result.liveCourse.recordEndTime > updateDate ? 2 : 1;
console.log('###', result.liveCourse.recordEndTime)

打印result.liveCourse.recordEndTime寸士,發(fā)現(xiàn)是null
可能是早期的課程資源有的是用flash做的,所以用gsver=1播放

根據(jù)課程的錄制結(jié)束時(shí)間進(jìn)行判斷碴卧。如果是2019年后的用h5播放弱卡,之前的時(shí)間用flash播放。
終于找到問(wèn)題的根源住册,反饋給服務(wù)端婶博,可能是后臺(tái)設(shè)置recordEndTime的問(wèn)題

理解xmlns原理

gs:video-vod可以知道,這是一個(gè)自定義的標(biāo)簽界弧。

xmlns 屬性可以在文檔中定義一個(gè)或多個(gè)可供選擇的命名空間凡蜻。該屬性可以放置在文檔內(nèi)任何元素的開(kāi)始標(biāo)簽中搭综。該屬性的值類似于 URL垢箕,它定義了一個(gè)命名空間划栓,瀏覽器會(huì)將此命名空間用于該屬性所在元素內(nèi)的所有內(nèi)容。

在js中条获,可以通過(guò)dom操作忠荞,獲取該標(biāo)簽上對(duì)應(yīng)的字段,進(jìn)行一些邏輯處理帅掘,可以避免使用w3c的標(biāo)簽委煤,產(chǎn)生沖突。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末修档,一起剝皮案震驚了整個(gè)濱河市碧绞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吱窝,老刑警劉巖讥邻,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異院峡,居然都是意外死亡兴使,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)照激,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)发魄,“玉大人,你說(shuō)我怎么就攤上這事俩垃±祝” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵口柳,是天一觀的道長(zhǎng)赏淌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)啄清,這世上最難降的妖魔是什么六水? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮辣卒,結(jié)果婚禮上掷贾,老公的妹妹穿的比我還像新娘。我一直安慰自己荣茫,他們只是感情好想帅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著啡莉,像睡著了一般港准。 火紅的嫁衣襯著肌膚如雪旨剥。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天浅缸,我揣著相機(jī)與錄音轨帜,去河邊找鬼。 笑死衩椒,一個(gè)胖子當(dāng)著我的面吹牛蚌父,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毛萌,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼苟弛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了阁将?” 一聲冷哼從身側(cè)響起膏秫,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎做盅,沒(méi)想到半個(gè)月后缤削,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡言蛇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年僻他,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腊尚。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吨拗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出婿斥,到底是詐尸還是另有隱情劝篷,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布民宿,位于F島的核電站娇妓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏活鹰。R本人自食惡果不足惜哈恰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望志群。 院中可真熱鬧着绷,春花似錦、人聲如沸锌云。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至彬向,卻和暖如春兼贡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娃胆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工遍希, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缕棵。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓孵班,卻偏偏與公主長(zhǎng)得像涉兽,于是被迫代替她去往敵國(guó)和親招驴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容