本發(fā)明涉及視頻播放技術(shù)領(lǐng)域,具體而言,涉及一種視頻播放方法及裝置。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,各類移動(dòng)終端已經(jīng)在人們的日常生活中應(yīng)用的越來越廣泛。移動(dòng)終端的一個(gè)極為重要的特點(diǎn)就是:可以在瀏覽器中進(jìn)行網(wǎng)頁瀏覽。
當(dāng)前在移動(dòng)終端上瀏覽網(wǎng)頁的方法一般為:用戶在瀏覽器中輸入網(wǎng)址,瀏覽器基于該網(wǎng)址向服務(wù)器發(fā)出頁面請求;服務(wù)器向?yàn)g覽器返回與頁面請求對應(yīng)的html文件;瀏覽器開始載入html代碼并根據(jù)html代碼頭中的link標(biāo)簽從服務(wù)器中獲取CSS(Cascading StyleSheets,級聯(lián)樣式表)文件;瀏覽器繼續(xù)進(jìn)行html主體代碼的載入并基于CSS文件渲染頁面,其中在html主體代碼的載入過程中,根據(jù)網(wǎng)頁架構(gòu)設(shè)計(jì)有時(shí)會引入跨域視頻的播放服務(wù),跨域視頻是指當(dāng)前網(wǎng)頁中有iframe(網(wǎng)頁內(nèi)聯(lián)框架,其為HTML的標(biāo)簽,該元素會創(chuàng)建包含另外一個(gè)文檔的內(nèi)聯(lián)框架),并且iframe中有待播放視頻,該iframe的域名、協(xié)議或端口與當(dāng)前網(wǎng)頁不同,(通常是域名不同),則該iframe中的視頻為跨域視頻。例如域名為A的網(wǎng)頁上包含域名為B的iframe,該iframe上的視頻可稱為跨域視頻。
目前多數(shù)瀏覽器以webkit為內(nèi)核,瀏覽器播放視頻利用的是其自帶的播放器,其中瀏覽器自帶播放器是指引用系統(tǒng)自帶的播放器, 在表面封裝,經(jīng)過UI(User Interface,用戶界面)改造成的瀏覽器的自定義播放器。由于webkit內(nèi)核沒有跨域訪問的權(quán)限,在播放跨域視頻時(shí)只能調(diào)用系統(tǒng)自帶的播放器進(jìn)行播放。例如,針對ios系統(tǒng)(ios系統(tǒng)是由蘋果公司開發(fā)的移動(dòng)操作系統(tǒng))設(shè)計(jì)的某種采用webkit內(nèi)核的瀏覽器,在播放跨域視頻時(shí),只能調(diào)用ios系統(tǒng)自帶的播放器進(jìn)行播放。
跨域播放視頻服務(wù)中,瀏覽器只能調(diào)用系統(tǒng)自帶播放器進(jìn)行播放,而不能調(diào)用非系統(tǒng)自帶的播放器播放,用戶體驗(yàn)較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種視頻播放方法及裝置,以提升播放跨域視頻服務(wù)中的用戶體驗(yàn)度。
第一方面,本發(fā)明實(shí)施例提供了一種視頻播放方法,包括:
在包含網(wǎng)頁內(nèi)聯(lián)框架的網(wǎng)頁主文檔以及所述網(wǎng)頁內(nèi)聯(lián)框架之間建立視頻消息通信通道;
所述網(wǎng)頁內(nèi)聯(lián)框架查找其所包含的視頻標(biāo)記,且根據(jù)所述視頻標(biāo)記獲取視頻信息;
所述網(wǎng)頁主文檔接收所述網(wǎng)頁內(nèi)聯(lián)框架通過所述通信通道返回的視頻信息;以及,根據(jù)所述視頻信息進(jìn)行視頻播放。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,上述方法還包括:
所述網(wǎng)頁主文檔通過所述通信通道向所述網(wǎng)頁內(nèi)聯(lián)框架發(fā)送查找視頻信息的消息;
以及,所述網(wǎng)頁內(nèi)聯(lián)框架響應(yīng)于所述消息查找其自身所包含的視頻標(biāo)記,且根據(jù)所述視頻標(biāo)記獲取視頻信息。
結(jié)合第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,上述方法還包括:
在所述網(wǎng)頁內(nèi)聯(lián)框架中加入基于JavaScript形成的監(jiān)聽指令以供網(wǎng)頁內(nèi)聯(lián)框架監(jiān)聽所述網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息。
結(jié)合第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,上述方法還包括:
基于框架標(biāo)簽名稱查找所述網(wǎng)頁主文檔所包含的網(wǎng)頁內(nèi)聯(lián)框架;
判斷所述網(wǎng)頁主文檔的網(wǎng)頁主框架中是否存在視頻信息,如果否,則向查找到的所述網(wǎng)頁內(nèi)聯(lián)框架中發(fā)送查找視頻信息的消息。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,上述方法還包括:
所述網(wǎng)頁主文檔監(jiān)聽來自所述網(wǎng)頁內(nèi)聯(lián)框架的通知消息;
以及,從監(jiān)聽到的所述通知消息中獲取所述視頻信息。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第五種可能的實(shí)施方式,其中,根據(jù)所述視頻信息進(jìn)行視頻播放,包括:
調(diào)用當(dāng)前瀏覽器自帶的播放器根據(jù)所述視頻信息進(jìn)行視頻播放。
結(jié)合第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第六種可能的實(shí)施方式,其中,所述查找視頻信息的消息為基于JavaScript形成的消息。
第二方面,本發(fā)明實(shí)施例還提供了一種視頻播放裝置,包括:
通信通道建立模塊,用于在包含網(wǎng)頁內(nèi)聯(lián)框架的網(wǎng)頁主文檔以及所述網(wǎng)頁內(nèi)聯(lián)框架之間建立視頻消息通信通道;
視頻信息查找模塊,用于使所述網(wǎng)頁內(nèi)聯(lián)框架查找其所包含的視頻標(biāo)記,且根據(jù)所述視頻標(biāo)記獲取視頻信息;
視頻信息接收模塊,用于使所述網(wǎng)頁主文檔接收所述網(wǎng)頁內(nèi)聯(lián)框架通過所述通信通道返回的視頻信息;
視頻播放模塊,用于根據(jù)所述視頻信息進(jìn)行視頻播放。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第一種可能的實(shí)施方式,上述裝置還包括:
查找觸發(fā)模塊,用于使所述網(wǎng)頁主文檔通過所述通信通道向所述網(wǎng)頁內(nèi)聯(lián)框架發(fā)送查找視頻信息的消息;
所述視頻信息查找模塊,用于使所述網(wǎng)頁內(nèi)聯(lián)框架響應(yīng)于所述消息查找其自身所包含的視頻標(biāo)記,且根據(jù)所述視頻標(biāo)記獲取視頻信息。
結(jié)合第二方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第二種可能的實(shí)施方式,上述裝置還包括:
第一監(jiān)聽模塊,用于在所述網(wǎng)頁內(nèi)聯(lián)框架中加入基于JavaScript形成的監(jiān)聽指令以供網(wǎng)頁內(nèi)聯(lián)框架監(jiān)聽所述網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息。
結(jié)合第二方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第三種可能的實(shí)施方式,上述裝置還包括:
內(nèi)聯(lián)框架查找模塊,用于基于框架標(biāo)簽名稱查找所述網(wǎng)頁主文檔所包含的網(wǎng)頁內(nèi)聯(lián)框架;
判斷模塊,用于判斷所述網(wǎng)頁主文檔的網(wǎng)頁主框架中是否存在視頻信息;
所述查找觸發(fā)模塊,用于在所述網(wǎng)頁主框架中不存在視頻信息時(shí)向查找到的所述網(wǎng)頁內(nèi)聯(lián)框架中發(fā)送查找視頻信息的消息。
結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第四種可能的實(shí)施方式,上述裝置還包括:
第二監(jiān)聽模塊,用于使所述網(wǎng)頁主文檔監(jiān)聽來自所述網(wǎng)頁內(nèi)聯(lián)框架的通知消息,以及從監(jiān)聽到的所述通知消息中獲取所述視頻信息。
利用本發(fā)明的視頻播放方法播放跨域視頻時(shí),網(wǎng)頁主文檔與網(wǎng)頁內(nèi)聯(lián)框架基于消息通信通道建立連接后,網(wǎng)頁內(nèi)聯(lián)框架能夠查找自身所包含的視頻標(biāo)記,并根據(jù)找到的視頻標(biāo)記獲取視頻信息,且將獲取到的視頻信息發(fā)送給網(wǎng)頁主文檔,從而在視頻播放時(shí)便可調(diào)用當(dāng)前瀏覽器自帶的播放器進(jìn)行播放,進(jìn)而提升播放跨域視頻服務(wù)中用戶的體驗(yàn)度。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實(shí)施例中視頻播放方法的第一種流程圖;
圖2示出了本發(fā)明實(shí)施例中視頻播放方法的第二種流程圖;
圖3示出了本發(fā)明實(shí)施例中視頻播放方法的第三種流程圖;
圖4示出了本發(fā)明實(shí)施例中視頻播放裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一 部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例。基于本發(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
基于ios系統(tǒng)的移動(dòng)終端,在瀏覽器中播放跨域視頻時(shí),由于webkit內(nèi)核沒有跨域訪問的權(quán)限,只能調(diào)取系統(tǒng)自帶的播放器播放跨域視頻,而無法調(diào)用瀏覽器自帶的播放器播放跨域視頻。
為了實(shí)現(xiàn)使用瀏覽器自帶播放器播放跨域視頻的目的,本發(fā)明實(shí)施例提供了一種視頻播放方法。該方法運(yùn)用于ios系統(tǒng),當(dāng)移動(dòng)終端瀏覽器加載的網(wǎng)頁中有跨域視頻時(shí),在網(wǎng)頁渲染前,網(wǎng)頁主文檔與網(wǎng)頁內(nèi)聯(lián)框架iframe之間建立連接,由iframe查找其自身所包含的視頻標(biāo)記并獲取視頻信息,網(wǎng)頁主文檔記錄iframe所獲取的視頻信息,在視頻播放時(shí)便可調(diào)用瀏覽器自帶的播放器進(jìn)行播放。
基于上述構(gòu)思,本發(fā)明實(shí)施例提供了一種視頻播放方法,該方法可以運(yùn)用于ios系統(tǒng),具體實(shí)施時(shí),該方法可以運(yùn)行在安裝有瀏覽器的移動(dòng)終端上(如iphone/ipod/itouch/ipad等),移動(dòng)終端上安裝的瀏覽器采用webkit內(nèi)核,使用瀏覽器自帶的播放器播放跨域視頻。如圖1所示,該方法的主要處理步驟包括:
步驟S11:在包含iframe的網(wǎng)頁主文檔以及iframe之間建立視頻消息通信通道。
瀏覽器加載的網(wǎng)頁,包括網(wǎng)頁主框架,有可能會包含iframe,只有當(dāng)網(wǎng)頁包含iframe時(shí)才會存在跨域視頻,即當(dāng)iframe的域名與網(wǎng)頁域名不同時(shí),iframe上的視頻可以稱為跨域視頻。
目前以webkit為內(nèi)核的瀏覽器在播放跨域視頻時(shí),沒有權(quán)限訪問iframe獲取視頻信息,只能調(diào)用系統(tǒng)自帶的播放器播放跨域視頻。
本發(fā)明中,在網(wǎng)頁包含跨域iframe且iframe中包含視頻時(shí),在iframe與網(wǎng)頁主文檔之間建立連接,使iframe與網(wǎng)頁主文檔之間能夠進(jìn)行消息傳遞,即在iframe與網(wǎng)頁主文檔之間建立消息通信通道,該消息通信通道是一種虛擬信息通道,指iframe與網(wǎng)頁主文檔之間可以進(jìn)行信息的交互。
步驟S12:iframe查找其所包含的視頻標(biāo)記,且根據(jù)視頻標(biāo)記獲取視頻信息。
當(dāng)iframe中包含視頻時(shí),iframe查找自身所包含的視頻標(biāo)記,并基于查找到的視頻標(biāo)記獲取視頻信息,如視頻地址。
本發(fā)明中,iframe查找自身所包含的視頻標(biāo)記的觸發(fā)方式有多種,例如,iframe中具有視頻信息時(shí),自動(dòng)進(jìn)行視頻標(biāo)記的查找,并將根據(jù)視頻標(biāo)記獲取到的視頻信息發(fā)送給網(wǎng)頁主文檔;又例如,iframe被網(wǎng)頁主文檔發(fā)送的查找視頻標(biāo)記的消息觸發(fā),iframe響應(yīng)主文檔的該消息從而進(jìn)行視頻標(biāo)記的查找。
觸發(fā)iframe查找自身包含視頻標(biāo)記的方式可以根據(jù)實(shí)際需要進(jìn)行設(shè)置,此處不再一一列舉。
步驟S13:網(wǎng)頁主文檔接收iframe通過通信通道返回的視頻信息。
iframe根據(jù)查找到的視頻標(biāo)記獲取視頻信息后,將獲取的視頻信息通過與網(wǎng)頁主文檔之間的通信通道發(fā)送給網(wǎng)頁主文檔,由網(wǎng)頁主文檔接收記錄視頻信息。
步驟S14:根據(jù)視頻信息進(jìn)行視頻播放。
網(wǎng)頁主文檔獲取到視頻信息后,在跨域視頻需要播放時(shí),便可調(diào)用當(dāng)前瀏覽器自帶的播放器根據(jù)網(wǎng)頁主文檔獲取的視頻信息進(jìn)行播放。
本發(fā)明的一種應(yīng)用場景中,網(wǎng)頁主文檔向iframe中發(fā)送查找視頻信息的消息,iframe監(jiān)聽網(wǎng)頁主文檔發(fā)送的消息,并響應(yīng)于該消息查找自身所包含的視頻標(biāo)記,以及根據(jù)視頻標(biāo)記獲取視頻信息。
具體實(shí)現(xiàn)時(shí),網(wǎng)頁渲染前,由移動(dòng)終端的網(wǎng)絡(luò)模塊向網(wǎng)頁的iframe中注入監(jiān)聽指令,其中網(wǎng)絡(luò)模塊是移動(dòng)終端的底層模塊,用于監(jiān)聽網(wǎng)絡(luò)層收到的數(shù)據(jù),包括網(wǎng)頁的原始數(shù)據(jù),還可以在網(wǎng)絡(luò)層向iframe中注入監(jiān)聽指令。iframe通過該監(jiān)聽指令能夠監(jiān)聽網(wǎng)頁主文檔發(fā)送的消息,當(dāng)iframe中的監(jiān)聽指令監(jiān)聽到查找視頻信息的消息后,查找其自身所包含的視頻標(biāo)記,以及根據(jù)視頻標(biāo)記獲取視頻信息,并將獲取的視頻信息通知網(wǎng)頁主文檔,從而使網(wǎng)頁主文檔獲取到視頻信息,進(jìn)而在視頻播放時(shí)調(diào)用當(dāng)前瀏覽器自帶的播放器進(jìn)行播放。通過上述方案,解決了ios平臺上不能調(diào)用瀏覽器自帶播放器播放跨域視頻的技術(shù)問題。如圖2示出了本應(yīng)用場景中視頻播放方法的實(shí)現(xiàn)步驟,包括:
步驟S21:在包含iframe的網(wǎng)頁主文檔以及iframe之間建立視頻消息通信通道。
步驟S22:網(wǎng)頁主文檔通過通信通道向iframe中發(fā)送查找視頻信息的消息。
具體實(shí)現(xiàn)時(shí),可以通過加載網(wǎng)頁的頁面主文檔以觸發(fā)向iframe中發(fā)送查找視頻信息消息的動(dòng)作。
步驟S23:iframe響應(yīng)于網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息,查找自身所包含的視頻標(biāo)記,并根據(jù)視頻標(biāo)記獲取視頻信息。
在iframe中設(shè)置有監(jiān)聽指令,用于監(jiān)聽網(wǎng)頁主文檔發(fā)送的消息,當(dāng)iframe監(jiān)聽到網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息后,通過查找視頻標(biāo)記查找視頻信息。
以蘋果手機(jī)為例,手機(jī)中自帶的瀏覽器為safari瀏覽器,用戶可以根據(jù)實(shí)際需要在手機(jī)中安裝非系統(tǒng)自帶的瀏覽器。用戶在瀏覽器上瀏覽網(wǎng)頁,當(dāng)瀏覽器上加載的A域網(wǎng)頁中包含B域iframe,且B域iframe中包含視頻時(shí),A域網(wǎng)頁的網(wǎng)頁主文檔向B域iframe發(fā)送查找視頻信息的消息;B域iframe中設(shè)置有用于監(jiān)聽網(wǎng)頁主文檔的監(jiān)聽指令,當(dāng)監(jiān)聽指令監(jiān)聽到A域網(wǎng)頁的網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息時(shí),B域iframe響應(yīng)該消息,查找iframe中的視頻標(biāo)記,并根據(jù)查找到的視頻標(biāo)記獲取視頻信息。
本發(fā)明中網(wǎng)頁主文檔向iframe中發(fā)送的查找視頻信息的消息為基于JS(JavaScript,直譯式腳本語言)形成的消息;iframe中設(shè)置的用于監(jiān)聽網(wǎng)頁主文檔的監(jiān)聽指令也為基于JS形成的指令。
優(yōu)選地,網(wǎng)頁渲染前,由移動(dòng)終端的網(wǎng)絡(luò)模塊向iframe中注入基于JS形成的監(jiān)聽指令以供iframe監(jiān)聽網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息。
步驟S24:網(wǎng)頁主文檔接收iframe發(fā)送的視頻消息。
考慮到網(wǎng)頁主文檔獲取iframe發(fā)送的視頻消息的及時(shí)有效性,在網(wǎng)頁主文檔上也還可以設(shè)置用于與iframe交互的交互指令,該交互指令能夠監(jiān)聽來自于iframe的通知消息,以從通知消息中獲取視頻信息。
仍以蘋果手機(jī)為例,瀏覽器中B域iframe響應(yīng)來自于A域網(wǎng)頁的網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息,獲取到視頻信息后,B域iframe將視頻信息作為通知消息的通知內(nèi)容傳遞給A域網(wǎng)頁的 網(wǎng)頁主文檔;A域網(wǎng)頁的網(wǎng)頁主文檔監(jiān)聽到iframe發(fā)送的通知消息后,從通知消息中獲取視頻信息。
步驟S25:調(diào)用當(dāng)前瀏覽器自帶的播放器根據(jù)視頻信息進(jìn)行視頻播放。
網(wǎng)頁主文檔接收并存儲視頻信息,當(dāng)進(jìn)行視頻播放時(shí),移動(dòng)終端瀏覽器調(diào)用其自帶的播放器根據(jù)網(wǎng)頁主文檔中記錄的視頻信息進(jìn)行播放,從而實(shí)現(xiàn)了利用瀏覽器自帶播放器進(jìn)行跨域視頻的播放,提升播放跨域視頻服務(wù)中用戶的體驗(yàn)度。
以蘋果手機(jī)為例,瀏覽器中A域網(wǎng)頁的網(wǎng)頁主文檔接收到B域iframe所提供的視頻信息后,調(diào)用其自帶的播放器播放跨域視頻。
移動(dòng)終端瀏覽器中加載網(wǎng)頁時(shí),瀏覽器利用服務(wù)器提供的網(wǎng)頁主文檔對網(wǎng)頁進(jìn)行渲染,其中,網(wǎng)頁主文檔包括html文件及CSS文件等,在網(wǎng)頁渲染過程中,根據(jù)網(wǎng)頁架構(gòu)的設(shè)計(jì),網(wǎng)頁中需要播放跨域視頻時(shí),網(wǎng)頁主文檔從跨域iframe中獲取視頻信息,并調(diào)用瀏覽器自帶播放器進(jìn)行播放。
此外,移動(dòng)終端瀏覽器的網(wǎng)頁加載過程中,還進(jìn)一步需要網(wǎng)頁框架frame文件,以為網(wǎng)頁頁面布局提供依據(jù)。在frame文件中包括網(wǎng)頁主框架mainframe以及iframe,一般地網(wǎng)頁中通過跨域iframe引入相關(guān)信息,如視頻信息。網(wǎng)頁主文檔獲取跨域iframe中的視頻信息前提是網(wǎng)頁中存在跨域iframe,因此,本發(fā)明的方法中首先查找網(wǎng)頁中的跨域iframe?;诖?,本發(fā)明還提供了一種視頻播放方法的具體實(shí)施方法,該方法同樣可以運(yùn)行在上述安裝有瀏覽器的移動(dòng)終端上,如圖3所示,該方法的主要處理步驟包括:
步驟S31:基于框架標(biāo)簽名稱查找iframe。
移動(dòng)終端瀏覽器中加載的網(wǎng)頁的框架文件中存在框架標(biāo)簽列表,網(wǎng)頁主文檔遍歷框架標(biāo)簽列表,將框架標(biāo)簽列表中的框架標(biāo)簽名稱與“iframe”一一比對,當(dāng)進(jìn)行比對的框架標(biāo)簽名稱與“iframe”比對一致時(shí),說明在網(wǎng)頁的框架文件中存在iframe。
步驟S32:網(wǎng)頁主文檔向查找到的iframe中發(fā)送查找視頻信息的消息。
網(wǎng)頁主文檔在查找視頻信息的過程中,首先查找網(wǎng)頁主框架中是否存在視頻信息,如果存在,則獲取網(wǎng)頁主框架中的視頻信息;如果不存在,網(wǎng)頁主文檔則向查找到的iframe中發(fā)送找視頻信息的消息。
iframe中設(shè)置有用于監(jiān)聽網(wǎng)頁主文檔的監(jiān)聽指令,當(dāng)網(wǎng)頁主文檔向iframe中發(fā)送了查找視頻信息的消息后,iframe響應(yīng)該消息查找其自身所包含的視頻標(biāo)記,并基于查找到的視頻標(biāo)記獲取視頻信息。
其中iframe中設(shè)置的監(jiān)聽指令是網(wǎng)頁渲染前,由移動(dòng)終端網(wǎng)絡(luò)模塊向iframe中注入。
iframe中的監(jiān)聽指令為基于JS形成的指令,該基于JS形成的指令,能夠進(jìn)行跨域訪問。
iframe查找到視頻信息后向網(wǎng)頁主文檔發(fā)送通知消息,iframe通過JS指令以異步通信方式將獲取到的視頻信息通知網(wǎng)頁主文檔。
步驟S33:網(wǎng)頁主文檔監(jiān)聽來自iframe的通知消息。
網(wǎng)頁主文檔中設(shè)置有用于與iframe交互的交互指令,該交互指令能夠監(jiān)聽iframe發(fā)送的通知消息,其中該交互指令為基于JS形成的指令。
當(dāng)iframe向網(wǎng)頁主文檔發(fā)送查找到視頻信息的通知消息時(shí),網(wǎng)頁主文檔中的交互指令監(jiān)聽并響應(yīng)該通知消息。
步驟S34:網(wǎng)頁主文檔從監(jiān)聽到的通知消息中獲取視頻信息。
網(wǎng)頁主文檔監(jiān)聽來自于iframe的通知消息,并定時(shí)查找獲取視頻信息。
步驟S35:根據(jù)視頻信息進(jìn)行視頻播放。
具體實(shí)施時(shí),跨域iframe獲取到的視頻信息可以為視頻地址,具體實(shí)施時(shí)可以調(diào)用當(dāng)前瀏覽器自帶的播放器根據(jù)視頻地址進(jìn)行視頻播放。
利用本發(fā)明的視頻播放方法,在移動(dòng)終端瀏覽器上能夠調(diào)用瀏覽器自帶的播放器播放跨域視頻,提升播放跨域視頻服務(wù)中用戶的體驗(yàn)度。
對應(yīng)于上述視頻播放方法,本發(fā)明實(shí)施例還提供了一種視頻播放裝置,參見圖4所示的視頻播放裝置的結(jié)構(gòu)框圖,該裝置包括以下模塊:
通信通道建立模塊41,用于在包含iframe的網(wǎng)頁主文檔以及iframe之間建立視頻消息通信通道;
視頻信息查找模塊42,用于使iframe查找其所包含的視頻標(biāo)記,且根據(jù)視頻標(biāo)記獲取視頻信息;
視頻信息接收模塊43,用于使網(wǎng)頁主文檔接收iframe通過通信通道返回的視頻信息;
視頻播放模塊44,用于根據(jù)視頻信息進(jìn)行視頻播放。
本發(fā)明上述裝置,網(wǎng)頁主文檔與iframe基于消息通信通道建立連接后,iframe能夠查找自身所包含的視頻標(biāo)記,并根據(jù)找到的視頻標(biāo)記獲取視頻信息,且將獲取到的視頻信息發(fā)送給網(wǎng)頁主文檔, 從而在視頻播放時(shí)便可調(diào)用當(dāng)前瀏覽器自帶的播放器進(jìn)行播放,進(jìn)而提升播放跨域視頻服務(wù)中用戶的體驗(yàn)度。
考慮到觸發(fā)iframe查找其自身所包含的視頻標(biāo)記的方式有多種,例如當(dāng)iframe中包含視頻信息時(shí),自動(dòng)觸發(fā),或者,由網(wǎng)頁主文檔觸發(fā)。
當(dāng)iframe查找其自身所包含視頻標(biāo)記的動(dòng)作是由網(wǎng)頁主文檔觸發(fā)時(shí),為了實(shí)現(xiàn)該觸發(fā)動(dòng)作,在上述視頻播放裝置的結(jié)構(gòu)中還包括查找觸發(fā)模塊,用于使網(wǎng)頁主文檔通過通信通道向iframe發(fā)送查找視頻信息的消息,此時(shí),視頻播放裝置中視頻信息查找模塊用于使iframe響應(yīng)于消息查找其自身所包含的視頻標(biāo)記,且根據(jù)視頻標(biāo)記獲取視頻信息。
網(wǎng)頁主文檔向iframe發(fā)送查找視頻信息的消息后,為了使iframe及時(shí)獲知并響應(yīng)該信息,可以在iframe中設(shè)置監(jiān)聽指令來監(jiān)聽網(wǎng)頁主文檔。
為了實(shí)現(xiàn)iframe對網(wǎng)頁主文檔的監(jiān)聽,上述視頻播放裝置中還可以包括第一監(jiān)聽模塊,用于在iframe中加入基于JS形成的監(jiān)聽指令以供iframe監(jiān)聽網(wǎng)頁主文檔發(fā)送的查找視頻信息的消息。
移動(dòng)終端瀏覽器中網(wǎng)頁加載時(shí)需要frame文件,在frame文件中包括網(wǎng)頁主框架mainframe以及跨域iframe,一般地網(wǎng)頁中通過跨域iframe引入文件,如視頻,因此網(wǎng)頁的網(wǎng)頁主文檔為了獲取到跨域iframe中的視頻信息,首先要查找到網(wǎng)頁中的跨域iframe。
考慮到網(wǎng)頁frame文件中存在框架標(biāo)簽列表,因此在查找frame文件中的跨域iframe時(shí),可以利用到frame文件中的框架標(biāo)簽列表,利用框架標(biāo)簽列表中框架標(biāo)簽名稱查找frame文件中的跨域iframe,基于此,上述視頻播放裝置中還包括內(nèi)聯(lián)框架查找模塊及判斷模塊, 其中內(nèi)聯(lián)框架查找模塊用于基于框架標(biāo)簽名稱查找網(wǎng)頁主文檔所包含的iframe;判斷模塊用于判斷網(wǎng)頁主文檔的網(wǎng)頁主框架中是否存在視頻信息;該裝置中的上述查找觸發(fā)模塊,用于在網(wǎng)頁主框架中不存在視頻信息時(shí)向查找到的所述網(wǎng)頁內(nèi)聯(lián)框架中發(fā)送查找視頻信息的消息。
通過上述方式,能夠以比較簡便的方式查找到frame文件中的跨域iframe,并向iframe中發(fā)送查找視頻信息的消息。
在跨域Iframe中設(shè)置有用于監(jiān)聽網(wǎng)頁主文檔的監(jiān)聽指令,當(dāng)網(wǎng)頁主文檔向iframe中發(fā)送了查找視頻信息的消息后,iframe響應(yīng)該消息查找其自身所包含的視頻標(biāo)記,并根據(jù)查找到的視頻標(biāo)記獲取視頻信息,例如獲取視頻地址。
iframe查找到視頻信息后向網(wǎng)頁主文檔發(fā)送通知消息,其中,iframe通過JS指令以異步通信方式將獲取到的視頻信息通知網(wǎng)頁主文檔。
網(wǎng)頁主文檔中設(shè)置有用于與iframe交互的交互指令,該交互指令能夠監(jiān)聽iframe發(fā)送的通知消息,其中該交互指令為基于JS形成的指令。
當(dāng)iframe向網(wǎng)頁主文檔發(fā)送查找到視頻信息的通知消息時(shí),網(wǎng)頁主文檔中的交互指令監(jiān)聽并響應(yīng)該通知消息。為了實(shí)現(xiàn)網(wǎng)頁主文檔對內(nèi)聯(lián)框架通知消息的消息,在視頻播放裝置中可以設(shè)置第二監(jiān)聽模塊,用于使網(wǎng)頁主文檔監(jiān)聽來自iframe的通知消息,以及從監(jiān)聽到的通知消息中獲取視頻信息。
網(wǎng)頁主文檔從監(jiān)聽到的通知消息中獲取到視頻信息后,調(diào)用當(dāng)前瀏覽器自帶的播放器進(jìn)行視頻播放。
綜上,本發(fā)明的技術(shù)方案能夠在移動(dòng)終端瀏覽器中調(diào)用瀏覽器自帶播放器播放跨域視頻,提升播放跨域視頻服務(wù)中用戶的體驗(yàn)度。
本發(fā)明實(shí)施例所提供的各裝置和模塊,其實(shí)現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實(shí)施例相同,為簡要描述,該實(shí)施例部分未提及之處,可參考前述方法實(shí)施例中相應(yīng)內(nèi)容。
本發(fā)明實(shí)施例所提供的執(zhí)行播放跨域視頻的計(jì)算機(jī)程序產(chǎn)品,包括存儲了程序代碼的計(jì)算機(jī)可讀存儲介質(zhì),程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中的方法,具體實(shí)現(xiàn)可參見方法實(shí)施例,在此不再贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)和裝置的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中。基于這樣 的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。