本發(fā)明涉及視頻播放技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種應(yīng)用程序內(nèi)的視頻播放方法及其裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)視頻資源的普及,人們對視頻的需求量越來越大,視頻資源由于其生動、有趣的優(yōu)勢,使得人們可以直觀地獲取更多資訊信息。同時(shí)由于移動終端的發(fā)展,用戶可以通過移動終端上的應(yīng)用程序進(jìn)行視頻信息的觀看。
但在需要展示各種視頻資源的應(yīng)用中,如搜索應(yīng)用,由于應(yīng)用程序內(nèi)播放的視頻資源是從不同的站點(diǎn)獲取的,而各站點(diǎn)進(jìn)行交互的過程中規(guī)則不一致,且交互規(guī)則隨時(shí)可能變更,從而影響視頻播放。同時(shí),各個(gè)視頻站點(diǎn)的界面風(fēng)格不一致,有些站點(diǎn)的廣告時(shí)間太長,不可離線觀看,視頻時(shí)長受限。并且,部分站點(diǎn)的視頻需要分段獲取,視頻源接口需要加解密處理,更進(jìn)一步的,各站點(diǎn)播放視頻的自定義播放頁面接口不一致等原因,造成視頻資源不能正常播放或影響播放質(zhì)量,從而使得用戶的觀看視頻的體驗(yàn)下降,基于此,需要應(yīng)用程序內(nèi)的視頻提供一種播放方法,以解決上述問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的旨在解決上述至少一個(gè)問題,提供一種視頻播放方法,以實(shí)現(xiàn)應(yīng)用程序內(nèi)的視頻播放流暢,給用戶帶來更好的視頻觀看體驗(yàn)。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種應(yīng)用程序內(nèi)的視頻播放方法,包括以下步驟:
響應(yīng)于對應(yīng)用程序內(nèi)視頻鏈接的點(diǎn)擊操作,加載相應(yīng)的視頻頁面;
判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
具體的,當(dāng)所述視頻頁面屬于預(yù)破解視頻頁面庫時(shí),查找該視頻頁面對應(yīng)的視頻源地址。
可選的,采用應(yīng)用程序中內(nèi)置的播放器播放與所述預(yù)破解視頻頁面對應(yīng)的視頻源地址相應(yīng)的視頻。
進(jìn)一步,所述對視頻頁面的實(shí)時(shí)破解采用逆向工程。
具體的,所述采用逆向工程獲取視頻源地址的步驟具體為:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
優(yōu)選的,預(yù)先注入用于觸發(fā)應(yīng)用程序內(nèi)置播放器執(zhí)行全屏播放的腳本。
進(jìn)一步,當(dāng)對所述視頻頁面破解失敗后,通過所述預(yù)先注入的腳本觸發(fā)應(yīng)用程序內(nèi)置播放器全屏顯示,以全屏形式播放視頻。
優(yōu)選的,在視頻播放時(shí)或即將播放時(shí)觸發(fā)所述腳本。
較佳的,所述視頻播放采用橫向全屏顯示方式進(jìn)行播放。
進(jìn)一步,破解成功后,采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
進(jìn)一步,當(dāng)對所述視頻頁面破解失敗后,通過系統(tǒng)原生播放器播放視頻。
進(jìn)一步,提供一預(yù)破解視頻庫,用于記錄視頻頁面與視頻源地址之間的對應(yīng)關(guān)系。
更進(jìn)一步,所述方法還包括:
獲取視頻鏈接對應(yīng)的視頻頁面,查找該視頻頁面對應(yīng)的視頻源地址,將所述視頻頁面與查找到的視頻源地址之間的對應(yīng)關(guān)系存儲于所述預(yù)破解視頻庫。
優(yōu)選的,每隔預(yù)設(shè)的時(shí)間間隔,對所述預(yù)破解視頻庫進(jìn)行更新。
進(jìn)一步,還包括,下載與破解后的視頻頁面對應(yīng)的視頻源地址相應(yīng)的所有視頻段,并按順序進(jìn)行標(biāo)記保存。
進(jìn)一步,將所述視頻段按標(biāo)記順序采用應(yīng)用程序中內(nèi)置播放器或自定義播放器播放。
一種應(yīng)用程序內(nèi)的視頻播放裝置,包括:
響應(yīng)模塊:用于響應(yīng)于對應(yīng)用程序內(nèi)視頻鏈接的點(diǎn)擊操作,加載相應(yīng)的視頻頁面;
判斷模塊:用于判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
破解模塊:用于當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
播放模塊,用于破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
具體的,當(dāng)所述視頻頁面屬于預(yù)破解視頻頁面庫時(shí),查找該視頻頁面對應(yīng)的視頻源地址。
具體的,所述播放模塊采用應(yīng)用程序中內(nèi)置的播放器播放與所述預(yù)破解視頻頁面對應(yīng)的視頻源地址相應(yīng)的視頻。
進(jìn)一步,還包括逆向模塊,用于對所述視頻頁面進(jìn)行實(shí)時(shí)破解。
具體的,所述逆向模塊采用逆向工程獲取視頻源地址的步驟具體為:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
進(jìn)一步,還包括注入模塊,用于預(yù)先注入用于觸發(fā)應(yīng)用程序內(nèi)置播放器執(zhí)行全屏播放的腳本。
具體的,當(dāng)對所述視頻頁面破解失敗后,通過所述預(yù)先注入的腳本觸發(fā)應(yīng)用程序內(nèi)置播放器全屏顯示,所述播放模塊以全屏形式播放視頻。
優(yōu)選的,在視頻播放時(shí)或即將播放時(shí)觸發(fā)所述腳本。
較佳的,所述視頻播放采用橫向全屏顯示方式進(jìn)行播放。
進(jìn)一步,破解成功后,所述播放模塊采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
進(jìn)一步,當(dāng)對所述視頻頁面破解失敗后,所述播放模塊通過系統(tǒng)原生 播放器播放視頻。
進(jìn)一步,還包括預(yù)破解視頻庫模塊,用于提供一預(yù)破解視頻庫,用于記錄視頻頁面與視頻源地址之間的對應(yīng)關(guān)系。
更進(jìn)一步,所述預(yù)破解視頻庫模塊還執(zhí)行以下步驟:
獲取視頻鏈接對應(yīng)的視頻頁面,查找該視頻頁面對應(yīng)的視頻源地址,將所述視頻頁面與查找到的視頻源地址之間的對應(yīng)關(guān)系存儲于所述預(yù)破解視頻庫。
優(yōu)選的,每隔預(yù)設(shè)的時(shí)間間隔,所述預(yù)破解視頻庫模塊對所述預(yù)破解視頻庫進(jìn)行更新。
進(jìn)一步,還包括,視頻段管理模塊,用于下載與破解后的視頻頁面對應(yīng)的視頻源地址相應(yīng)的所有視頻段,并按順序進(jìn)行標(biāo)記保存。
具體的,所述播放模塊將所述視頻段按標(biāo)記順序采用應(yīng)用程序中內(nèi)置播放器或自定義播放頁面播放。
一種應(yīng)用程序內(nèi)的視頻播放方法,包括以下步驟:
向應(yīng)用程序注入用于攔截視頻播放事件的腳本;
當(dāng)存在視頻播放事件時(shí),對其進(jìn)行攔截以獲取當(dāng)前視頻頁面;
判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
進(jìn)一步,所述腳本攔截應(yīng)用程序內(nèi)的視頻播放事件時(shí),還包括:
判斷所述應(yīng)用程序中的當(dāng)前頁面是否存在待播放視頻;
若存在待播放視頻,則將當(dāng)前頁面作為當(dāng)前視頻頁面。
更進(jìn)一步,所述判斷應(yīng)用程序中的當(dāng)前頁面是否存在待播放視頻之前,還包括:
接收搜索詞的輸入,依據(jù)該搜索詞查找與其相關(guān)的網(wǎng)頁信息,并將查到的網(wǎng)頁信息展示于應(yīng)用程序顯示界面;
接收對所述應(yīng)用程序顯示界面的觸控指令,依據(jù)該觸控指令確定與其 相應(yīng)的當(dāng)前頁面,并在應(yīng)用程序內(nèi)加載該當(dāng)前頁面。
具體的,當(dāng)所述視頻頁面屬于預(yù)破解視頻頁面庫時(shí),查找該視頻頁面對應(yīng)的視頻源地址。
具體的,采用應(yīng)用程序中內(nèi)置的播放器播放與所述預(yù)破解視頻頁面對應(yīng)的視頻源地址相應(yīng)的視頻。
進(jìn)一步,所述對視頻頁面的實(shí)時(shí)破解采用逆向工程。
具體的,所述采用逆向工程獲取視頻源地址的步驟具體為:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
進(jìn)一步,破解成功后,采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
進(jìn)一步,當(dāng)對所述視頻頁面破解失敗后,通過系統(tǒng)原生播放器播放視頻。
一種應(yīng)用程序內(nèi)的視頻播放裝置,包括:
注入模塊:用于向應(yīng)用程序注入用于攔截視頻播放事件的腳本;
攔截模塊:用于當(dāng)存在視頻播放事件時(shí),對其進(jìn)行攔截以獲取當(dāng)前視頻頁面;
判斷模塊:用于判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
破解模塊:用于當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
播放模塊:用于破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
進(jìn)一步,所述攔截模塊在攔截應(yīng)用程序內(nèi)的視頻播放事件時(shí),還包括
待播放視頻判斷模塊,用于執(zhí)行以下步驟:
判斷所述應(yīng)用程序中的當(dāng)前頁面是否存在待播放視頻;
若存在待播放視頻,則將當(dāng)前頁面作為當(dāng)前視頻頁面。
更進(jìn)一步,所述待播放視頻判斷模塊判斷應(yīng)用程序中的當(dāng)前頁面是否
存在待播放視頻之前,還包括前置模塊,用于執(zhí)行以下步驟:
接收搜索詞的輸入,依據(jù)該搜索詞查找與其相關(guān)的網(wǎng)頁信息,并將查 到的網(wǎng)頁信息展示于應(yīng)用程序顯示界面;
接收對所述應(yīng)用程序顯示界面的觸控指令,依據(jù)該觸控指令確定與其相應(yīng)的當(dāng)前頁面,并在應(yīng)用程序內(nèi)加載該當(dāng)前頁面。
具體的,當(dāng)所述視頻頁面屬于預(yù)破解視頻頁面庫時(shí),查找該視頻頁面對應(yīng)的視頻源地址。
具體的,所述播放模塊采用應(yīng)用程序中內(nèi)置的播放器播放與所述預(yù)破解視頻頁面對應(yīng)的視頻源地址相應(yīng)的視頻。
進(jìn)一步,還包括逆向模塊,用于對所述視頻頁面進(jìn)行實(shí)時(shí)破解。
具體的,所述逆向模塊采用逆向工程獲取視頻源地址的步驟具體為:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
進(jìn)一步,破解成功后,所述播放模塊采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
進(jìn)一步,當(dāng)對所述視頻頁面破解失敗后,所述播放模塊通過系統(tǒng)原生播放器播放視頻。
相比現(xiàn)有技術(shù),本發(fā)明的方案具有以下優(yōu)點(diǎn):
1、首先,本發(fā)明通過對視頻頁面進(jìn)行破解獲取其視頻源地址,從而解決了由于各站點(diǎn)交互規(guī)則不同或隨時(shí)改變帶來的無法獲取視頻源地址的問題,且對分段視頻進(jìn)行預(yù)先下載并按順序標(biāo)記存儲,避免視頻分段獲取帶來的延時(shí),給用戶帶來更好的視頻觀看體驗(yàn)。
2、其次,本發(fā)明對無法破解的視頻頁面采用系統(tǒng)原生播放器播放,或由預(yù)先注入的腳本觸發(fā)應(yīng)用程序內(nèi)置播放器進(jìn)行全屏播放,從而避免對視頻源接口進(jìn)行解密,使用戶對無法破解的視頻頁面也能采用統(tǒng)一的視頻界面進(jìn)行觀看,進(jìn)一步提高視頻觀看體驗(yàn)度。
3、再者,本發(fā)明通過注入腳本程序攔截視頻頁面的播放事件,并破解相應(yīng)視頻頁面的視頻源地址,采用應(yīng)用程序內(nèi)置播放器或自定義播放頁面播放所述視頻源地址對應(yīng)的視頻,從而保證視頻播放的效果統(tǒng)一,更進(jìn)一步提高用戶的視頻觀看體驗(yàn)度。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明所述應(yīng)用程序內(nèi)視頻播放方法的一實(shí)施例原理示意圖;
圖2為本發(fā)明所述應(yīng)用程序內(nèi)視頻播放方法的另一實(shí)施例流程圖;
圖3為本發(fā)明所述應(yīng)用程序內(nèi)視頻播放方法的又一實(shí)施例原理示意圖;
圖4為本發(fā)明所述應(yīng)用程序內(nèi)視頻播放裝置的一實(shí)施例結(jié)構(gòu)框圖;
圖5為本發(fā)明所述應(yīng)用程序內(nèi)視頻播放裝置的另一實(shí)施例結(jié)構(gòu)框圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語 (包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無線信號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個(gè)人通信系統(tǒng)),其可以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個(gè)人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS(Global Positioning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運(yùn)輸、安裝在交通工具(航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或以分布形式,運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機(jī)頂盒等設(shè)備。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的遠(yuǎn)端網(wǎng)絡(luò)設(shè)備,其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云。在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級虛擬計(jì)算機(jī)。本發(fā)明的實(shí)施例中,遠(yuǎn)端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP 協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。
本發(fā)明實(shí)施例主要用于基于Android系統(tǒng)的移動終端的應(yīng)用程序,所述應(yīng)用程序具體指具有視頻播放功能、能夠加載視頻資源的應(yīng)用程序。參見圖1所示,本發(fā)明提供一種應(yīng)用程序內(nèi)的視頻播放方法的實(shí)施例,本發(fā)明所述實(shí)施例中,所述各個(gè)步驟的執(zhí)行主體可以為運(yùn)行于移動終端設(shè)備上的應(yīng)用程序,即在實(shí)際應(yīng)用中開發(fā)的一款應(yīng)用程序,使其在運(yùn)行時(shí)能夠執(zhí)行本發(fā)明所述實(shí)施例中的各個(gè)步驟。當(dāng)然,該應(yīng)用程序可以為一個(gè)獨(dú)立的應(yīng)用程序,也可以為另一應(yīng)用程序中的一個(gè)功能模塊。所述應(yīng)用程序內(nèi)的視頻播放方法具體包括以下步驟:
S11、響應(yīng)于對應(yīng)用程序內(nèi)視頻鏈接的點(diǎn)擊操作,加載相應(yīng)的視頻頁面;
應(yīng)用程序?yàn)橛脩籼峁┮粋€(gè)觸控界面,其中包括能夠鏈接到視頻資源的視頻鏈接,用戶點(diǎn)擊相應(yīng)視頻鏈接時(shí),對其進(jìn)行響應(yīng),具體的,所述視頻鏈接通常表示為URL地址,當(dāng)用戶點(diǎn)擊視頻鏈接時(shí),應(yīng)用程序在用戶點(diǎn)擊URL后生成請求包,移動終端對URL中的域名發(fā)起DNS解析請求,獲得該域名的目標(biāo)IP地址,向該目標(biāo)IP發(fā)起鏈接請求,鏈接成功后,應(yīng)用程序?qū)⑺稣埱蟀l(fā)送給該IP地址,由該IP地址對應(yīng)的服務(wù)器對其請求包進(jìn)行解析,以獲取其中的請求內(nèi)容。服務(wù)器對該請求內(nèi)容進(jìn)行判斷,以確定其有效性。當(dāng)該請求內(nèi)容有效,則向應(yīng)用程序端反饋視頻頁面的相關(guān)資源,應(yīng)用程序?qū)λ鱿嚓P(guān)資源進(jìn)行解析,并顯示相關(guān)資源,以加載該視頻頁面。
S12、判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
提供一個(gè)預(yù)破解視頻庫,用于記錄視頻頁面與視頻源地址之間的對應(yīng)關(guān)系。該視頻庫由服務(wù)器預(yù)先生成,服務(wù)器基于視頻鏈接對應(yīng)的視頻頁面,查找該視頻頁面對應(yīng)的視頻源地址,將該視頻頁面與查找到的視頻源地址之間的對應(yīng)關(guān)系存儲于所述預(yù)破解視頻庫。為了保證該預(yù)破解視頻頁面庫處于最新狀態(tài),每隔預(yù)設(shè)的時(shí)間間隔,對該預(yù)破解視頻庫進(jìn)行更新。
具體地,將當(dāng)前視頻頁面與所述預(yù)破解視頻頁面庫中的視頻頁面進(jìn)行 一一匹配,以確定該視頻頁面是否屬于預(yù)破解視頻頁面庫。所述視頻頁面可通過其視頻鏈接,即URL地址進(jìn)行表征,也可以通過視頻名稱或其他相關(guān)特征表征,本發(fā)明實(shí)施例對此不作限制。
S13、當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
當(dāng)基于用戶點(diǎn)擊獲取的視頻頁面不屬于所述預(yù)破解視頻頁面庫時(shí),即在所述預(yù)破解視頻頁面庫中沒有與所述視頻頁面匹配的視頻頁面時(shí),則應(yīng)用程序請求對該視頻頁面進(jìn)行實(shí)時(shí)破解,通過向服務(wù)器發(fā)送破解請求,由服務(wù)器執(zhí)行相關(guān)破解操作。具體的,服務(wù)器通過逆向工程對視頻頁面進(jìn)行破解,以獲取其對應(yīng)的視頻源地址,步驟如下:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
服務(wù)器將獲取的視頻源地址反饋給應(yīng)用程序,由應(yīng)用程序基于該視頻源地址獲取相應(yīng)的視頻資源。
進(jìn)一步的,當(dāng)所述視頻頁面破解屬于所述預(yù)破解視頻頁面庫時(shí),即所述預(yù)破解視頻頁面庫中存在與所述視頻頁面匹配的視頻頁面時(shí),則查找該視頻頁面對應(yīng)的視頻源地址,從而獲取該視頻頁面對應(yīng)的視頻源地址。
S14、破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,則應(yīng)用程序采用其內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。進(jìn)一步的,當(dāng)所述視頻頁面屬于所述預(yù)破解視頻頁面庫時(shí),通過查找獲取該視頻頁面對應(yīng)的視頻源地址,應(yīng)用程序采用其內(nèi)置播放器播放該視頻源地址對應(yīng)的視頻。
更進(jìn)一步的,預(yù)先向應(yīng)用程序中注入用于觸發(fā)應(yīng)用程序內(nèi)置播放器執(zhí)行全屏播放的腳本程序,所述腳本程序可以為任何腳本語言編程得到,如JavaScript、python等,本發(fā)明實(shí)施例對此不作限制。將所述腳本通過相應(yīng)的注入方式注入應(yīng)用程序的相應(yīng)模塊中,當(dāng)對所述視頻頁面破解失敗后,調(diào)用該腳本程序,該預(yù)先注入的腳本觸發(fā)應(yīng)用程序內(nèi)置播放器全屏顯示, 以全屏形式播放視頻。優(yōu)選的,所述視頻播放采用橫向全屏方式顯示,以適應(yīng)用戶使用移動終端的需求。其中,所述腳本程序的觸發(fā)優(yōu)選在視頻播放時(shí)或即將播放時(shí),以便及時(shí)播放所述視頻。
可選的,當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,應(yīng)用程序采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。更進(jìn)一步,當(dāng)未破解的視頻頁面破解失敗后,應(yīng)用程序通過系統(tǒng)原生播放器播放視頻。
由于在應(yīng)用程序內(nèi)的視頻播放過程中,有些視頻站點(diǎn)的視頻是分段獲取的,而分段獲取視頻會帶來視頻段之間的播放延時(shí),降低用戶觀看視頻的體驗(yàn)度。因此,本發(fā)明下載與破解后的視頻頁面對應(yīng)的視頻源地址相應(yīng)的所有視頻段,并按順序進(jìn)行標(biāo)記保存,以預(yù)先將分段視頻放入緩存,當(dāng)用戶觀看視頻時(shí),將相應(yīng)的分段視頻按照標(biāo)記順序采用所述應(yīng)用程序內(nèi)置播放器或自定義播放頁面緊密播放,為用戶提供更加流暢的視頻播放效果。
綜上所述,本發(fā)明所述實(shí)施例通過對視頻頁面進(jìn)行破解獲取其視頻源地址,從而解決了由于各站點(diǎn)交互規(guī)則不同或隨時(shí)改變帶來的無法獲取視頻源地址的問題,且對分段視頻進(jìn)行預(yù)先下載并按順序標(biāo)記存儲,避免視頻分段獲取帶來的延時(shí),給用戶帶來更好的視頻觀看體驗(yàn)。
為了進(jìn)一步說明本發(fā)明所述方法,提供另一種實(shí)施例,如圖2所述,以流程化的形式對其進(jìn)行說明,具體如下:
步驟1:響應(yīng)于用戶點(diǎn)擊視頻鏈接的操作,加載相應(yīng)的視頻頁面;
步驟2:判斷所述視頻頁面是否被破解,若否則轉(zhuǎn)步驟4,若是則轉(zhuǎn)步驟3;
步驟3:采用內(nèi)置播放器進(jìn)行播放;
步驟4:對所述未破解視頻頁面進(jìn)行實(shí)時(shí)破解,若破解成功則轉(zhuǎn)步驟3,若破解失敗則轉(zhuǎn)步驟5;
步驟5:跳轉(zhuǎn)至H5頁面進(jìn)行播放或觸發(fā)全屏播放,若播放成功則轉(zhuǎn)步驟6,若播放失敗則轉(zhuǎn)步驟7;
步驟6:采用自定義播放頁面進(jìn)行播放;
步驟7:采用H5播放器進(jìn)行播放。
更進(jìn)一步地,為了說明本發(fā)明所述應(yīng)用程序內(nèi)視頻播放方法的另一種實(shí)施方式,本發(fā)明還提供另外一種實(shí)施例,參閱圖3所示,具體包括以下步驟:
S21、向應(yīng)用程序注入用于攔截視頻播放事件的腳本;
通過相應(yīng)的注入方式,向應(yīng)用程序中注入攔截視頻播放事件的腳本程序,所述腳本程序可以為任何腳本語言編程得到,如JavaScript、python等,本發(fā)明實(shí)施例對此不作限制。將所述腳本通過相應(yīng)的注入方式注入應(yīng)用程序的相應(yīng)模塊中,以等待被應(yīng)用程序的相應(yīng)模塊觸發(fā)或調(diào)用。
其中,所述所述腳本攔截應(yīng)用程序內(nèi)的視頻播放事件時(shí),還包括:
判斷所述應(yīng)用程序中的當(dāng)前頁面是否存在待播放視頻;
若存在待播放視頻,則將當(dāng)前頁面作為當(dāng)前視頻頁面。
且在判斷所述當(dāng)前頁面是否存在待播放視頻之前,還包括以下步驟:
接收搜索詞的輸入,依據(jù)該搜索詞查找與其相關(guān)的網(wǎng)頁信息,并將查到的網(wǎng)頁信息展示于應(yīng)用程序顯示界面;
接收對所述應(yīng)用程序顯示界面的觸控指令,依據(jù)該觸控指令確定與其相應(yīng)的當(dāng)前頁面,并在應(yīng)用程序內(nèi)加載該當(dāng)前頁面。
其中,用戶在所述應(yīng)用程序顯示界面中輸入觸控指令可采用多種方式,如通過用戶手指或感應(yīng)筆來觸控移動終端屏幕上的觸摸點(diǎn),也可以采取其他方式,本發(fā)明實(shí)施例對此不作限制。
S22、當(dāng)存在視頻播放事件時(shí),對其進(jìn)行攔截以獲取當(dāng)前視頻頁面;
當(dāng)應(yīng)用程序的相應(yīng)模塊檢測到存在視頻播放事件時(shí),則通知所述注入的腳本程序,腳本程序被觸發(fā),對該視頻播放事件進(jìn)行攔截,獲取當(dāng)前播放事件的視頻頁面。
S23、判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
提供一個(gè)預(yù)破解視頻庫,用于記錄視頻頁面與視頻源地址之間的對應(yīng)關(guān)系。該視頻庫由服務(wù)器預(yù)先生成,服務(wù)器基于視頻鏈接對應(yīng)的視頻頁面, 查找該視頻頁面對應(yīng)的視頻源地址,將該視頻頁面與查找到的視頻源地址之間的對應(yīng)關(guān)系存儲于所述預(yù)破解視頻庫。為了保證該預(yù)破解視頻頁面庫處于最新狀態(tài),每隔預(yù)設(shè)的時(shí)間間隔,對該預(yù)破解視頻庫進(jìn)行更新。
具體地,將當(dāng)前視頻頁面與所述預(yù)破解視頻頁面庫中的視頻頁面進(jìn)行一一匹配,以確定該視頻頁面是否屬于預(yù)破解視頻頁面庫。所述視頻頁面可通過其視頻鏈接,即URL地址進(jìn)行表征,也可以通過視頻名稱或其他相關(guān)特征表征,本發(fā)明實(shí)施例對此不作限制。
S24、當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
當(dāng)基于用戶點(diǎn)擊獲取的視頻頁面不屬于所述預(yù)破解視頻頁面庫時(shí),即在所述預(yù)破解視頻頁面庫中沒有與所述視頻頁面匹配的視頻頁面時(shí),則應(yīng)用程序請求對該視頻頁面進(jìn)行實(shí)時(shí)破解,通過向服務(wù)器發(fā)送破解請求,由服務(wù)器執(zhí)行相關(guān)破解操作。具體的,服務(wù)器通過逆向工程對視頻頁面進(jìn)行破解,以獲取其對應(yīng)的視頻源地址,步驟如下:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
服務(wù)器將獲取的視頻源地址反饋給應(yīng)用程序,由應(yīng)用程序基于該視頻源地址獲取相應(yīng)的視頻資源。
進(jìn)一步的,當(dāng)所述視頻頁面破解屬于所述預(yù)破解視頻頁面庫時(shí),即所述預(yù)破解視頻頁面庫中存在與所述視頻頁面匹配的視頻頁面時(shí),則查找該視頻頁面對應(yīng)的視頻源地址,從而獲取該視頻頁面對應(yīng)的視頻源地址。
S25、破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,則應(yīng)用程序采用其內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。進(jìn)一步的,當(dāng)所述視頻頁面屬于所述預(yù)破解視頻頁面庫時(shí),通過查找獲取該視頻頁面對應(yīng)的視頻源地址,應(yīng)用程序采用其內(nèi)置播放器播放該視頻源地址對應(yīng)的視頻。
更進(jìn)一步的,預(yù)先向應(yīng)用程序中注入用于觸發(fā)應(yīng)用程序內(nèi)置播放器執(zhí) 行全屏播放的腳本程序,所述腳本程序可以為任何腳本語言編程得到,如JavaScript、python等,本發(fā)明實(shí)施例對此不作限制。將所述腳本通過相應(yīng)的注入方式注入應(yīng)用程序的相應(yīng)模塊中,當(dāng)對所述視頻頁面破解失敗后,調(diào)用該腳本程序,該預(yù)先注入的腳本觸發(fā)應(yīng)用程序內(nèi)置播放器全屏顯示,以全屏形式播放視頻。優(yōu)選的,所述視頻播放采用橫向全屏方式顯示,以適應(yīng)用戶使用移動終端的需求。其中,所述腳本程序的觸發(fā)優(yōu)選在視頻播放時(shí)或即將播放時(shí),以便及時(shí)播放所述視頻。
可選的,當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,應(yīng)用程序采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。更進(jìn)一步,當(dāng)未破解的視頻頁面破解失敗后,應(yīng)用程序通過系統(tǒng)原生播放器播放視頻。
由于在應(yīng)用程序內(nèi)的視頻播放過程中,有些視頻站點(diǎn)的視頻是分段獲取的,而分段獲取視頻會帶來視頻段之間的播放延時(shí),降低用戶觀看視頻的體驗(yàn)度。因此,本發(fā)明下載與破解后的視頻頁面對應(yīng)的視頻源地址相應(yīng)的所有視頻段,并按順序進(jìn)行標(biāo)記保存,以預(yù)先將分段視頻放入緩存,當(dāng)用戶觀看視頻時(shí),將相應(yīng)的分段視頻按照標(biāo)記順序采用所述應(yīng)用程序內(nèi)置播放器或自定義播放頁面緊密播放,為用戶提供更加流暢的視頻播放效果。
綜上所述,本發(fā)明通過注入腳本程序攔截視頻頁面的播放事件,并破解相應(yīng)視頻頁面的視頻源地址,采用應(yīng)用程序內(nèi)置播放器或自定義播放頁面播放所述視頻源地址對應(yīng)的視頻,從而保證視頻播放的效果統(tǒng)一,更進(jìn)一步提高用戶的視頻觀看體驗(yàn)度。
參考圖4所示,為了進(jìn)一步模塊化地說明本發(fā)明所述應(yīng)用程序內(nèi)的視頻播放方法,還提供一種應(yīng)用程序內(nèi)的視頻播放裝置,包括:響應(yīng)模塊11、判斷模塊12、破解模塊13、播放模塊14,其中,
所述響應(yīng)模塊11用于響應(yīng)于對應(yīng)用程序內(nèi)視頻鏈接的點(diǎn)擊操作,加載相應(yīng)的視頻頁面;
應(yīng)用程序?yàn)橛脩籼峁┮粋€(gè)觸控界面,其中包括能夠鏈接到視頻資源的 視頻鏈接,用戶點(diǎn)擊相應(yīng)視頻鏈接時(shí),對其進(jìn)行響應(yīng),具體的,所述視頻鏈接通常表示為URL地址,當(dāng)用戶點(diǎn)擊視頻鏈接時(shí),應(yīng)用程序在用戶點(diǎn)擊URL后生成請求包,移動終端對URL中的域名發(fā)起DNS解析請求,獲得該域名的目標(biāo)IP地址,向該目標(biāo)IP發(fā)起鏈接請求,鏈接成功后,應(yīng)用程序?qū)⑺稣埱蟀l(fā)送給該IP地址,由該IP地址對應(yīng)的服務(wù)器對其請求包進(jìn)行解析,以獲取其中的請求內(nèi)容。服務(wù)器對該請求內(nèi)容進(jìn)行判斷,以確定其有效性。當(dāng)該請求內(nèi)容有效,則向應(yīng)用程序端反饋視頻頁面的相關(guān)資源,應(yīng)用程序?qū)λ鱿嚓P(guān)資源進(jìn)行解析,并顯示相關(guān)資源,以加載該視頻頁面。
所述判斷模塊12用于判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
預(yù)破解視頻模塊提供一個(gè)預(yù)破解視頻庫,用于記錄視頻頁面與視頻源地址之間的對應(yīng)關(guān)系。該視頻庫由預(yù)破解視頻模塊預(yù)先生成,預(yù)破解視頻模塊基于視頻鏈接對應(yīng)的視頻頁面,查找該視頻頁面對應(yīng)的視頻源地址,將該視頻頁面與查找到的視頻源地址之間的對應(yīng)關(guān)系存儲于所述預(yù)破解視頻庫。為了保證該預(yù)破解視頻頁面庫處于最新狀態(tài),每隔預(yù)設(shè)的時(shí)間間隔,對該預(yù)破解視頻庫進(jìn)行更新。
具體地,將當(dāng)前視頻頁面與所述預(yù)破解視頻頁面庫中的視頻頁面進(jìn)行一一匹配,以確定該視頻頁面是否屬于預(yù)破解視頻頁面庫。所述視頻頁面可通過其視頻鏈接,即URL地址進(jìn)行表征,也可以通過視頻名稱或其他相關(guān)特征表征,本發(fā)明實(shí)施例對此不作限制。
所述破解模塊13用于當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
當(dāng)基于用戶點(diǎn)擊獲取的視頻頁面不屬于所述預(yù)破解視頻頁面庫時(shí),即在所述預(yù)破解視頻頁面庫中沒有與所述視頻頁面匹配的視頻頁面時(shí),則應(yīng)用程序請求對該視頻頁面進(jìn)行實(shí)時(shí)破解,通過向服務(wù)器發(fā)送破解請求,由服務(wù)器執(zhí)行相關(guān)破解操作。具體的,服務(wù)器通過逆向工程對視頻頁面進(jìn)行破解,以獲取其對應(yīng)的視頻源地址,所述服務(wù)器包括逆向模塊,其執(zhí)行步驟如下:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
服務(wù)器將獲取的視頻源地址反饋給應(yīng)用程序,由應(yīng)用程序基于該視頻源地址獲取相應(yīng)的視頻資源。
進(jìn)一步的,當(dāng)所述視頻頁面破解屬于所述預(yù)破解視頻頁面庫時(shí),即所述預(yù)破解視頻頁面庫中存在與所述視頻頁面匹配的視頻頁面時(shí),則查找該視頻頁面對應(yīng)的視頻源地址,從而獲取該視頻頁面對應(yīng)的視頻源地址。
所述播放模塊14用于破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,則應(yīng)用程序采用其內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。進(jìn)一步的,當(dāng)所述視頻頁面屬于所述預(yù)破解視頻頁面庫時(shí),通過查找獲取該視頻頁面對應(yīng)的視頻源地址,應(yīng)用程序采用其內(nèi)置播放器播放該視頻源地址對應(yīng)的視頻。
更進(jìn)一步的,由注入模塊預(yù)先向應(yīng)用程序中注入用于觸發(fā)應(yīng)用程序內(nèi)置播放器執(zhí)行全屏播放的腳本程序,所述腳本程序可以為任何腳本語言編程得到,如JavaScript、python等,本發(fā)明實(shí)施例對此不作限制。將所述腳本通過相應(yīng)的注入方式注入應(yīng)用程序的相應(yīng)模塊中,當(dāng)對所述視頻頁面破解失敗后,調(diào)用該腳本程序,該預(yù)先注入的腳本觸發(fā)應(yīng)用程序內(nèi)置播放器全屏顯示,以全屏形式播放視頻。優(yōu)選的,所述視頻播放采用橫向全屏方式顯示,以適應(yīng)用戶使用移動終端的需求。其中,所述腳本程序的觸發(fā)優(yōu)選在視頻播放時(shí)或即將播放時(shí),以便及時(shí)播放所述視頻。
可選的,當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,應(yīng)用程序采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。更進(jìn)一步,當(dāng)未破解的視頻頁面破解失敗后,應(yīng)用程序通過系統(tǒng)原生播放器播放視頻。
由于在應(yīng)用程序內(nèi)的視頻播放過程中,有些視頻站點(diǎn)的視頻是分段獲取的,而分段獲取視頻會帶來視頻段之間的播放延時(shí),降低用戶觀看視頻的體驗(yàn)度。因此,本發(fā)明實(shí)施例所述裝置還包括視頻段管理模塊,用于下載與破解后的視頻頁面對應(yīng)的視頻源地址相應(yīng)的所有視頻段,并按順序進(jìn) 行標(biāo)記保存,以預(yù)先將分段視頻放入緩存,當(dāng)用戶觀看視頻時(shí),將相應(yīng)的分段視頻按照標(biāo)記順序采用所述應(yīng)用程序內(nèi)置播放器或自定義播放頁面緊密播放,為用戶提供更加流暢的視頻播放效果。
相應(yīng)的,參考圖5所示,本發(fā)明針對應(yīng)用程序內(nèi)的視頻播放方法的另一個(gè)實(shí)施例,提供一種應(yīng)用程序內(nèi)的視頻播放裝置,包括:注入模塊21、攔截模塊22、判斷模塊23、破解模塊24、播放模塊25,其中,
所述注入模塊21用于向應(yīng)用程序注入用于攔截視頻播放事件的腳本;
通過相應(yīng)的注入方式,向應(yīng)用程序中注入攔截視頻播放事件的腳本程序,所述腳本程序可以為任何腳本語言編程得到,如JavaScript、python等,本發(fā)明實(shí)施例對此不作限制。將所述腳本通過相應(yīng)的注入方式注入應(yīng)用程序的相應(yīng)模塊中,以等待被應(yīng)用程序的相應(yīng)模塊觸發(fā)或調(diào)用。
其中,所述腳本攔截應(yīng)用程序內(nèi)的視頻播放事件時(shí),還包括待播放視頻判斷模塊,具體執(zhí)行以下步驟:
判斷所述應(yīng)用程序中的當(dāng)前頁面是否存在待播放視頻;
若存在待播放視頻,則將當(dāng)前頁面作為當(dāng)前視頻頁面。
且在判斷所述當(dāng)前頁面是否存在待播放視頻之前,還包括前置模塊,執(zhí)行以下步驟:
接收搜索詞的輸入,依據(jù)該搜索詞查找與其相關(guān)的網(wǎng)頁信息,并將查到的網(wǎng)頁信息展示于應(yīng)用程序顯示界面;
接收對所述應(yīng)用程序顯示界面的觸控指令,依據(jù)該觸控指令確定與其相應(yīng)的當(dāng)前頁面,并在應(yīng)用程序內(nèi)加載該當(dāng)前頁面。
其中,用戶在所述應(yīng)用程序顯示界面中輸入觸控指令可采用多種方式,如通過用戶手指或感應(yīng)筆來觸控移動終端屏幕上的觸摸點(diǎn),也可以采取其他方式,本發(fā)明實(shí)施例對此不作限制。
所述攔截模塊22用于當(dāng)存在視頻播放事件時(shí),對其進(jìn)行攔截以獲取當(dāng)前視頻頁面;
當(dāng)應(yīng)用程序的相應(yīng)模塊檢測到存在視頻播放事件時(shí),則通知所述注入 的腳本程序,腳本程序被觸發(fā),對該視頻播放事件進(jìn)行攔截,獲取當(dāng)前播放事件的視頻頁面。
所述判斷模塊23用于判斷該視頻頁面是否屬于預(yù)破解視頻頁面庫;
提供一個(gè)預(yù)破解視頻庫,用于記錄視頻頁面與視頻源地址之間的對應(yīng)關(guān)系。該視頻庫由服務(wù)器預(yù)先生成,服務(wù)器基于視頻鏈接對應(yīng)的視頻頁面,查找該視頻頁面對應(yīng)的視頻源地址,將該視頻頁面與查找到的視頻源地址之間的對應(yīng)關(guān)系存儲于所述預(yù)破解視頻庫。為了保證該預(yù)破解視頻頁面庫處于最新狀態(tài),每隔預(yù)設(shè)的時(shí)間間隔,對該預(yù)破解視頻庫進(jìn)行更新。
具體地,將當(dāng)前視頻頁面與所述預(yù)破解視頻頁面庫中的視頻頁面進(jìn)行一一匹配,以確定該視頻頁面是否屬于預(yù)破解視頻頁面庫。所述視頻頁面可通過其視頻鏈接,即URL地址進(jìn)行表征,也可以通過視頻名稱或其他相關(guān)特征表征,本發(fā)明實(shí)施例對此不作限制。
所述破解模塊24用于當(dāng)該視頻頁面不屬于預(yù)破解視頻頁面庫時(shí),對其進(jìn)行實(shí)時(shí)破解,以獲取該視頻頁面對應(yīng)的視頻源地址;
當(dāng)基于用戶點(diǎn)擊獲取的視頻頁面不屬于所述預(yù)破解視頻頁面庫時(shí),即在所述預(yù)破解視頻頁面庫中沒有與所述視頻頁面匹配的視頻頁面時(shí),則應(yīng)用程序請求對該視頻頁面進(jìn)行實(shí)時(shí)破解,通過向服務(wù)器發(fā)送破解請求,由服務(wù)器執(zhí)行相關(guān)破解操作。具體的,服務(wù)器通過逆向工程對視頻頁面進(jìn)行破解,以獲取其對應(yīng)的視頻源地址,所述服務(wù)器包括逆向模塊,其執(zhí)行步驟如下:
反推視頻頁面中的交互行為,以獲取其頁面交互規(guī)則;
按照所述交互規(guī)則正向獲取所述視頻頁面對應(yīng)的視頻源地址。
服務(wù)器將獲取的視頻源地址反饋給應(yīng)用程序,由應(yīng)用程序基于該視頻源地址獲取相應(yīng)的視頻資源。
進(jìn)一步的,當(dāng)所述視頻頁面破解屬于所述預(yù)破解視頻頁面庫時(shí),即所述預(yù)破解視頻頁面庫中存在與所述視頻頁面匹配的視頻頁面時(shí),則查找該視頻頁面對應(yīng)的視頻源地址,從而獲取該視頻頁面對應(yīng)的視頻源地址。
所述播放模塊25用于破解成功后,采用應(yīng)用程序中內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。
當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,則應(yīng)用程序采用其內(nèi)置播放器播放與所述破解獲取的視頻源地址對應(yīng)的視頻。進(jìn)一步的,當(dāng)所述視頻頁面屬于所述預(yù)破解視頻頁面庫時(shí),通過查找獲取該視頻頁面對應(yīng)的視頻源地址,應(yīng)用程序采用其內(nèi)置播放器播放該視頻源地址對應(yīng)的視頻。
更進(jìn)一步的,預(yù)先向應(yīng)用程序中注入用于觸發(fā)應(yīng)用程序內(nèi)置播放器執(zhí)行全屏播放的腳本程序,所述腳本程序可以為任何腳本語言編程得到,如JavaScript、python等,本發(fā)明實(shí)施例對此不作限制。將所述腳本通過相應(yīng)的注入方式注入應(yīng)用程序的相應(yīng)模塊中,當(dāng)對所述視頻頁面破解失敗后,調(diào)用該腳本程序,該預(yù)先注入的腳本觸發(fā)應(yīng)用程序內(nèi)置播放器全屏顯示,以全屏形式播放視頻。優(yōu)選的,所述視頻播放采用橫向全屏方式顯示,以適應(yīng)用戶使用移動終端的需求。其中,所述腳本程序的觸發(fā)優(yōu)選在視頻播放時(shí)或即將播放時(shí),以便及時(shí)播放所述視頻。
可選的,當(dāng)未破解的視頻頁面被破解成功后,獲取到其視頻源地址,應(yīng)用程序采用自定義播放頁面播放與所述破解獲取的視頻源地址對應(yīng)的視頻。更進(jìn)一步,當(dāng)未破解的視頻頁面破解失敗后,應(yīng)用程序通過系統(tǒng)原生播放器播放視頻。
由于在應(yīng)用程序內(nèi)的視頻播放過程中,有些視頻站點(diǎn)的視頻是分段獲取的,而分段獲取視頻會帶來視頻段之間的播放延時(shí),降低用戶觀看視頻的體驗(yàn)度。因此,本發(fā)明下載與破解后的視頻頁面對應(yīng)的視頻源地址相應(yīng)的所有視頻段,并按順序進(jìn)行標(biāo)記保存,以預(yù)先將分段視頻放入緩存,當(dāng)用戶觀看視頻時(shí),將相應(yīng)的分段視頻按照標(biāo)記順序采用所述應(yīng)用程序內(nèi)置播放器或自定義播放頁面緊密播放,為用戶提供更加流暢的視頻播放效果。
以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。