專利名稱:音視頻文件下載提示方法
技術領域:
本發明涉及互聯網技術領域,尤其涉及一種音視頻文件下載提示方法。
背景技術:
隨著互聯網技術的不斷發展,基于互聯網的多媒體資源也日益豐富。 現有音視頻網站均提供有音視頻信息在線播放功能,但是一部分音視頻網 站并不提供關于音視頻文件的明確的下載地址,而且針對這類音視頻文件 的下載地址做了較為嚴格的下載限制和加密處理,使用戶無法快速地直接 下載所需音視頻文件,而只能選擇在線觀看。
現有技術中實現網站音視頻文件下載的方法是通過通過網絡驅動在
網卡上抓包獲取網絡傳輸數據包進行數據分析,監控和分析HTTP請求包, 需要先識別"tcp"數據包,然后識別"http"請求,最后識別目標網站, 獲得音視頻文件的下載地址。現有技術實現音視頻文件下載的方法中,獲 得音視頻文件的下載地址時操作或實現均比較復雜,因此造成下載過程較 為繁瑣,降低用戶的網絡性能;而且還可能會因下載地址被加密等原因無 法準確獲得下載地址,出現無法下載所需文件的情況,影響服務質量。
發明內容
本發明提供一種音視頻文件下載提示方法,用以解決現有技術中因下載 地址獲取困難而無法直接下載所需文件的缺陷,實現為用戶提供下載地址進 行音視頻文件下載。
本發明提供一種音視頻文件下載提示方法,包括
在互聯網瀏覽器進程中,攔截文件打開接口函數獲得所要訪問的文件的鏈接地址和所述文件的句柄信息,以及所述鏈接地址和句柄信息的對應關系
信息;
根據所述鏈接地址生成文件下載提示信息;
型,則再根據通過攔截文件讀取接口函數而獲得的文件內容信息判斷所述文 件的文件類型,若所述文件的文件類型是音視頻文件類型,則根據所述對應 關系信息查找與通過攔截所述文件讀取接口函數而獲得的句柄信息對應的鏈 接地址,并根據查找到的鏈接地址生成文件下載提示信息。
本發明提供的音視頻文件下載提示方法,在互聯網瀏覽器進程中,通過 攔截文件打開接口函數和文件讀取接口函數,獲得所要訪問的音視頻文件的 鏈接地址,并生成用于提示用戶直接下載該文件的下載提示信息,并不影響 IE調用API函數的進行信息展現的正常實現。對于用戶而言,在打開一個網 頁后,若該網頁上存在在線播放的音視頻文件,可以根據互聯網瀏覽器菜單 上的文件下栽提示信息對感興趣的文件進行下載,避免了用戶想要下載音視 頻文件而無法方便的獲得下載鏈接地址的缺陷,提高了服務質量;而且對下 載鏈接地址信息的獲取和生成文件下載提示信息均在后臺進行,并不影響用 戶瀏覽網頁資源信息的正常流程。
圖1為本發明音^L頻文件下載提示方法流程圖2為本發明音視頻文件下載提示方法中獲取鏈接地址流程圖
具體實施例方式
下面結合附圖和具體實施例進一步說明本發明實施例的技術方案。
圖1為本發明音視頻文件下栽提示方法流程圖,如圖1所示,該方法包括如下步驟
步驟100,在互聯網瀏覽器進程中,攔截文件打開接口函數獲得所要訪 問的文件的鏈接地址和所述文件的句柄信息,以及所述鏈接地址和句柄信息 的對應關系信息;
互聯網瀏覽器例如微軟IE (Internet Explorer)瀏覽器在啟動時,當組成 網頁的資源信息中存在能夠在線播放的音視頻信息時,IE首先需要調用"http" 請求文件打開函數創建句柄信息。IE在向文件打開接口函數發送調用請求時 要將所要訪問的文件的鏈接地址(URL地址)發送給文件打開接口函數作為 輸入參數,其中所述的文件打開接口函數為一種應用編程接口 (Application Programming Interface ;簡稱API)函數,可以根據接收到的鏈接地址返回 調用結果即生成對應的句柄作為結果返回。本發明提供的方法就是在此基礎 上,通過在在互聯網瀏覽器進程中,攔截文件打開接口函數,獲得IE所要訪 問的文件的鏈接地址和所述文件的句柄信息,并建立所述鏈接地址和所述文 件的句柄信息的對應關系信息。本發明實施例可以采用API攔截(hook)技 術實現,在IE啟動的時候通過"bho" (Browser Helper Object)接口將動態 庫加載到IE進程空間中,通過"API hook"技術接管"winlnet"的幾個函數 包括文件打開4妄口函凄t例如"httpOpenR叫uest"或"InternetOpenUrl",文件 讀取接口函數"InternetReadFile"或"InternetReadFileEx" 。 IE瀏覽器在每 次進行文件下載的時候,會調用這幾個函數,接管API的意義在于IE調用這 幾個API函數時,會跳至我們預先設定的對應的處理函數,并由我們的對應 處理函數來調用對應的真實的API。本發明實施例提供的方法中"APIhook" 技術可以具體選用"detour"技術來實施對API函數的攔截和接管。本實施例 方法中可以在開啟互聯網瀏覽器后訪問網絡資源時觸發進行攔截API函數的 操作,從而獲得所需信息。
本發明方法中為了獲取IE訪問的文件的URL地址,通過攔截文件打開 接口函數,從中獲取所需要的URL地址,實現步驟包括如圖2所示步驟IOOI,在互聯網瀏覽器進程中,攔截所述文件打開接口函數,獲得 所要訪問的文件的鏈接地址;
步驟1002,向所述文件打開接口函數轉發所述鏈接地址,并獲得所述文 件打開接口函數根據所述鏈接地址生成的句柄信息;
步驟1003,建立所述鏈接地址與所述句柄信息之間的對應關系。
具體地,IE調用例如"httpOpenRequest"的文件打開接口函數時,要向 "httpOpenRequest"函數發送請求消息,將所要訪問的文件的地址發送給 "httpOpenRequest"函數作為輸入參數,本實施例通過"API hook"技術攔 截請求消息,并從中獲取所需要的URL地址信息,再將獲取的URL地址信 息作為參數,調用系統真實的"httpOpenRequest"函數。"httpOpenRequest" 函數對包括URL地址信息的請求消息進行響應,生成句柄信息,并將句柄信 息返回;獲取到句柄信息后,將句柄信息再轉發給IE;通過對正調用文件打 開接口函數的攔截,獲得IE所要訪問的URL地址和句柄信息后,建立二者 的對應關系。
步驟101,根據所述鏈接地址判斷所要訪問的文件的文件類型是否是音 視頻文件類型,若是則執行步驟102;若不是,則執行步驟103;
由于存在可以4艮據鏈接地址信息直接判斷出文件的類型,因此在攔截文 件打開接口函數獲得所要訪問的文件的鏈接地址信息后,可以首先根據該鏈 接地址信息對所要訪問的文件的類型進行判斷,根據判斷結果作不同的處理。
步驟102,根據所述鏈接地址生成文件下載提示信息;
若根據所述鏈接地址判斷得知所要訪問的文件為音視頻類型文件,則根 據所述鏈接地址生成所述文件下載提示信息,例如下載"xxx.flv"就可以判 斷出該文件為視頻文件,則可以直接生成下載提示信息,該下載提示信息是 根據URL地址生成的,提示信息可以是在IE上出現一個對應的菜單選項等, 用戶點擊該菜單時<更可以直接下載文件到本地^_盤上了 。當能夠直接4艮據鏈 接地址判斷出文件的文件類型時,后續雖然也要進行攔截文件讀取接口函數的操作,但可以不做特殊處理,而按照正常文件下載流程下載網頁資源上的 音視頻文件即可。這樣,互聯網瀏覽器在完成下載音視頻文件資源信息,并 在互聯網瀏覽器中播放文件類型是音視頻文件類型的文件的同時,也相應地 給出了下載該文件的提示信息,供用戶選擇下載。
步驟103,根據通過攔截文件讀取接口函數而獲得的文件內容信息判斷 所述文件的文件類型,若是音視頻文件類型,則執行步驟104;若不是音視 頻文件類型,則執行步驟105;
若不能根據所述鏈接地址判斷出所述文件的文件類型是音視頻文件類 型,則在攔截文件讀取接口函數時可以獲得所要訪問的文件的文件內容信息, 并沖艮據該文件內容信息再對文件的類型作出判斷,并作相應處理。
步驟104,根據所述對應關系信息查找與通過攔截所述文件讀取接口函 數而獲得的句柄信息對應的鏈接地址,并根據查找到的鏈接地址生成文件下 載提示信息;
互聯網瀏覽器在完成調用文件打開接口函數,接收到文件打開接口函數 根據鏈接地址生成的句柄信息后,要根據得到的句柄信息調用文件讀取接口 函數完成文件數據的下載。IE向文件打開接口函數例如"IntemetReadFile" 函數發送請求消息,其中攜帶有所要訪問文件對應的句柄信息,請求通過該 API函數獲取到文件內容。本實施例中通過在互聯網瀏覽器進程中,攔截文 件打開接口函數例如"IntemetReadFile"函數,獲得句柄信息和文件內容信 息,在之前根據文件的鏈接地址信息不能做出文件是音視頻類型文件的判斷 情況下,首先判斷是否有所述通過攔截所述文件讀取接口函數而獲得的句柄 信息的記錄,若有,則可以再根據文件內容信息對文件類型作出判斷,具體 可以是根據讀取的文件內容數據格式為已知的某種音視頻文件數據格式進行 判斷,得到文件是音視頻類型文件的判斷結果后,在之前建立的鏈接地址和 句柄信息之間的對應關系信息中,查找文件類型為音視頻文件類型的文件的 句柄信息所對應的鏈接地址,并根據查找到的鏈接地址生成文件下載提示信息。在生成文件下載提示信息的同時還要將句柄信息發送給文件讀取接口函
數例如"InternetReadFile"函數,"InternetReadFile"函數根據句柄信息完成 正常的文件數據讀取操作,實現在IE上的在線播放。這樣,互聯網瀏覽器在 完成下載音視頻文件資源信息,并在互聯網瀏覽器中播放文件類型是音視頻 文件類型的文件的同時,也相應地給出了下載該文件的提示信息,供用戶選 擇下載。
如果在之前建立的鏈接地址和句柄信息之間的對應關系信息中沒有記錄 該句柄信息對應的鏈接地址,或之前就沒有關于該句柄信息的任何記錄,則 直接調用真實的"http"數據讀取函數,并將函數返回結果返回給IE,而不 做其他的處理。
步驟105,音視頻文件下載提示處理流程結束。
若IE打開的網頁資源中沒有音視頻文件,則按照正常的網絡資源打開處 理流程執行網頁信息展現操作,當然也不必生成文件下載提示信息。
本發明提供的音視頻文件下載提示方法,在互聯網瀏覽器進程中,通過 攔截文件打開接口函數和文件讀取接口函數,獲得所要訪問的音視頻文件的 鏈接地址,并生成用于提示用戶直接下載該文件的下載提示信息,并不影響 正調用API函數的進行信息展現的正常實現。對于用戶而言,在打開一個網 頁后,若該網頁上存在在線播放的音視頻文件,可以根據互聯網瀏覽器菜單 上的文件下載提示信息對感興趣的文件進行下載,避免了用戶想要下載音視 頻文件而無法方便的獲得下載鏈接地址的缺陷,提高了服務質量;而且對下 載鏈接地址信息的獲取和生成下載提示信息均在后臺進行,并不影響用戶瀏 覽網頁資源信息的正常流程。本發明方法中攔截的是當前IE瀏覽器的"http,, 訪問請求,而且是針對發出請求的數據包,相對于現有的無目的的在網絡上 抓包,本方法的信息抓取更具有定向性,效率更高。
本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟 可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述 的存儲介質包括ROM、 RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。 最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對其 限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術 人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或 者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技 術方案的本質脫離本發明各實施例技術方案的精神和范圍。
權利要求
1、一種音視頻文件下載提示方法,其特征在于,包括在互聯網瀏覽器進程中,攔截文件打開接口函數獲得所要訪問的文件的鏈接地址和所述文件的句柄信息,以及所述鏈接地址和句柄信息的對應關系信息;若根據所述鏈接地址判斷出所述文件的文件類型是音視頻文件類型,則根據所述鏈接地址生成文件下載提示信息;若不能根據所述鏈接地址判斷出所述文件的文件類型是音視頻文件類型,則再根據通過攔截文件讀取接口函數而獲得的文件內容信息判斷所述文件的文件類型,若所述文件的文件類型是音視頻文件類型,則根據所述對應關系信息查找與通過攔截所述文件讀取接口函數而獲得的句柄信息對應的鏈接地址,并根據查找到的鏈接地址生成文件下載提示信息。
2、 根據權利要求1所述的音視頻文件下載提示方法,其特征在于,所述 在互聯網瀏覽器進程中,攔截文件打開接口函數獲得所要訪問的文件的鏈接 地址和所述文件的句柄信息,以及所述鏈接地址和句柄信息的對應關系信息 包括在互聯網瀏覽器進程中,攔截所述文件打開接口函數,獲得所要訪問的 文件的鏈接地址;向所述文件打開接口函數轉發所述鏈接地址,并獲得所述文件打開接口 函數根據所述鏈接地址生成的句柄信息;建立所述鏈接地址與所述句柄信息之間的對應關系。
3、 根據權利要求2所述的音視頻文件下載提示方法,其特征在于,還包 括向所述互聯網瀏覽器返回所述文件打開接口函數根據所述鏈接地址生成的 句柄信息。
4、 根據權利要求1所述的音視頻文件下載提示方法,其特征在于根據通 過攔截文件讀取接口函數而獲得的文件內容信息判斷所述文件的文件類型之前包括通過判斷得知有通過攔截所述文件讀取接口函數而獲得的所述句柄 信息的記錄。
5、根據權利要求1所述的音視頻文件下載提示方法,其特征在于還包括 在所述互聯網瀏覽器中播放文件類型是音視頻文件類型的文件。
全文摘要
本發明提供一種音視頻文件下載提示方法。該方法包括在互聯網瀏覽器進程中,攔截文件打開接口函數獲得所要訪問的文件的鏈接地址和文件的句柄信息,以及鏈接地址和句柄信息的對應關系信息;若根據鏈接地址判斷出文件的文件類型是音視頻文件類型,則根據鏈接地址生成文件下載提示信息;若不能根據鏈接地址判斷出文件的文件類型是音視頻文件類型,則再根據通過攔截文件讀取接口函數而獲得的文件內容信息判斷文件的文件類型,若文件的文件類型是音視頻文件類型,則根據對應關系信息查找與通過攔截文件讀取接口函數而獲得的句柄信息對應的鏈接地址,并根據查找到的鏈接地址生成文件下載提示信息。本發明能夠提供音視頻文件的下載地址,實現直接下載。
文檔編號H04L12/28GK101645815SQ200810117879
公開日2010年2月10日 申請日期2008年8月6日 優先權日2008年8月6日
發明者劉明海, 王云鵬, 華 鐘, 維 魯 申請人:百度在線網絡技術(北京)有限公司