專利名稱:一種移動(dòng)終端及在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及流媒體下載技術(shù),特別是涉及一種可實(shí)現(xiàn)流媒體下載的移動(dòng)終端及在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)和寬帶網(wǎng)絡(luò)技術(shù)的快速發(fā)展,人們希望互聯(lián)網(wǎng)不再只具有簡(jiǎn)單的網(wǎng)頁(yè)瀏覽、文件下載等功能,而且還應(yīng)具有承載實(shí)時(shí)的視、音頻信息的功能,因此產(chǎn)生了能滿足“邊下載邊播放”的流媒體業(yè)務(wù)。流媒體業(yè)務(wù)是一種視頻、聲音和數(shù)據(jù)通過(guò)實(shí)時(shí)傳輸協(xié)議以連續(xù)流方式順序從網(wǎng)絡(luò)側(cè)向終端傳輸,終端接收到一定數(shù)據(jù)緩存后就可以立即播放的多媒體應(yīng)用。
目前,移動(dòng)終端可通過(guò)中國(guó)移動(dòng)無(wú)線接入點(diǎn)(cmwap)進(jìn)行網(wǎng)絡(luò)連接實(shí)現(xiàn)流媒體下載。
當(dāng)通過(guò)cmwap接入點(diǎn)進(jìn)行網(wǎng)絡(luò)連接時(shí),移動(dòng)終端通過(guò)cmwap接入點(diǎn)(即一個(gè)特定的WAP網(wǎng)關(guān))連接到流媒體服務(wù)器完成流媒體下載。由于是由一個(gè)特定的WAP網(wǎng)關(guān)來(lái)提供一種代理的流媒體下載服務(wù),而并不是由Internet網(wǎng)絡(luò)直接為移動(dòng)終端提供流媒體下載服務(wù),因此,在與移動(dòng)終端下載通道的一次連接中,cmwap接入點(diǎn)即WAP網(wǎng)關(guān)通過(guò)下載通道提供給移動(dòng)終端的流媒體下載數(shù)據(jù)量是非常有限的,也就是說(shuō),在cmwap接入點(diǎn)向移動(dòng)終端發(fā)送了一定數(shù)量的流媒體數(shù)據(jù)后,便會(huì)斷開(kāi)與移動(dòng)終端的連接,而移動(dòng)終端也只能在斷開(kāi)連接后,再次請(qǐng)求下載然后接收流媒體數(shù)據(jù)。然而從斷開(kāi)連接后到移動(dòng)終端再次發(fā)送請(qǐng)求并接收到流媒體數(shù)據(jù)之間會(huì)存在一段時(shí)間,因而會(huì)導(dǎo)致移動(dòng)終端出現(xiàn)較大的下載傳輸時(shí)延,從而降低了“邊下載邊播放”的流媒體業(yè)務(wù)的業(yè)務(wù)服務(wù)質(zhì)量,降低了用戶的業(yè)務(wù)感受。
另外,目前,移動(dòng)終端還可以通過(guò)中國(guó)移動(dòng)網(wǎng)絡(luò)(cmnet)接入點(diǎn)進(jìn)行網(wǎng)絡(luò)連接實(shí)現(xiàn)流媒體下載。但是,在通過(guò)cmnet接入點(diǎn)實(shí)現(xiàn)流媒體下載時(shí),移動(dòng)終端主要使用實(shí)時(shí)傳輸協(xié)議(RTP)/實(shí)時(shí)傳輸控制協(xié)議(RTCP)或者實(shí)時(shí)傳輸流協(xié)議(RTSP)協(xié)議,而RTP/RTCP協(xié)議或者RTSP協(xié)議并非移動(dòng)終端中固有的協(xié)議類型,要使用RTP/RTCP協(xié)議或者RTSP協(xié)議來(lái)實(shí)現(xiàn)流媒體下載,必須對(duì)移動(dòng)終端進(jìn)行功能增強(qiáng)使其支持RTP/RTCP協(xié)議或者RTSP協(xié)議,因而對(duì)移動(dòng)終端提出了較高的要求,增加了業(yè)務(wù)的實(shí)現(xiàn)難度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種移動(dòng)終端及在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的方法,以突破對(duì)移動(dòng)終端下載流媒體數(shù)據(jù)量的限制。
為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的方法,包括以下步驟A、在移動(dòng)終端中創(chuàng)建不少于兩路的下載通道,并從中選擇一路作為當(dāng)前下載通道,利用當(dāng)前下載通道接收流媒體數(shù)據(jù);B、監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)時(shí),從所創(chuàng)建的空閑下載通道中選擇一路作為預(yù)備下載通道并觸發(fā)該預(yù)備下載通道,在當(dāng)前下載通道完成該通道本次流媒體數(shù)據(jù)下載時(shí),利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù),重復(fù)本步驟,直至流媒體數(shù)據(jù)下載完畢。
所述步驟A進(jìn)一步包括獲取當(dāng)前下載通道在與流媒體服務(wù)器建立連接時(shí)發(fā)送下載請(qǐng)求到當(dāng)前下載通道首次接收到流媒體數(shù)據(jù)的響應(yīng)時(shí)間長(zhǎng)度;在步驟B中,所述監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)的步驟包括實(shí)時(shí)計(jì)算當(dāng)前下載通道在本次流媒體下載中的剩余下載時(shí)間長(zhǎng)度,并在監(jiān)視到所計(jì)算出的剩余下載時(shí)間長(zhǎng)度等于所獲取的響應(yīng)時(shí)間長(zhǎng)度時(shí),到達(dá)所述觸發(fā)時(shí)機(jī)。
該方法進(jìn)一步包括在當(dāng)前下載通道與流媒體服務(wù)器建立連接發(fā)送下載請(qǐng)求時(shí),啟動(dòng)預(yù)先設(shè)置的計(jì)時(shí)器;在步驟A中,所述獲取響應(yīng)時(shí)間長(zhǎng)度的步驟包括在當(dāng)前下載通道首次接收到流媒體數(shù)據(jù)時(shí),獲取所述計(jì)時(shí)器的當(dāng)前值,將所獲取的計(jì)時(shí)器的當(dāng)前值作為響應(yīng)時(shí)間長(zhǎng)度。
該方法進(jìn)一步包括預(yù)先設(shè)置當(dāng)前閾值,該當(dāng)前閾值表示當(dāng)前下載通道在與流媒體服務(wù)器的一次連接中總共應(yīng)下載的數(shù)據(jù)量;所述計(jì)算剩余下載時(shí)間長(zhǎng)度的步驟包括獲取當(dāng)前下載通道的數(shù)據(jù)傳輸速率以及當(dāng)前下載通道在本次流媒體下載中已下載的流媒體數(shù)據(jù)量,利用當(dāng)前閾值、所獲取的當(dāng)前下載通道的數(shù)據(jù)傳輸速率以及所獲取的當(dāng)前下載通道已下載的流媒體數(shù)據(jù)量,計(jì)算剩余下載時(shí)間長(zhǎng)度。
在當(dāng)前下載通道完成該通道本次流媒體數(shù)據(jù)下載時(shí),并在利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)之前,所述步驟B進(jìn)一步包括獲取在與流媒體服務(wù)器的本次連接中當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;判斷所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量是否等于當(dāng)前閾值,如果等于,則繼續(xù)執(zhí)行所述的利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)的步驟,否則,調(diào)整當(dāng)前閾值,并從空閑的下載通道中選擇一路下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù),重復(fù)本步驟,直至流媒體數(shù)據(jù)下載完畢。
所述調(diào)整當(dāng)前閾值的步驟包括利用所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量調(diào)整當(dāng)前閾值。
該方法進(jìn)一步包括預(yù)先設(shè)置最小閾值和最大閾值,該最小閾值和最大閾值用于限定當(dāng)前閾值的調(diào)整幅度范圍;所述利用當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量調(diào)整當(dāng)前閾值的步驟進(jìn)一步包括利用最小閾值和最大閾值調(diào)整當(dāng)前閾值,并調(diào)整最小閾值和最大閾值。
所述調(diào)整的步驟包括B11、判斷所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量是否小于當(dāng)前閾值,如果是,則執(zhí)行步驟B12,否則,執(zhí)行步驟B13;B12、判斷當(dāng)前閾值與閾值估算范圍最小閾值至最大閾值的大小關(guān)系,如果當(dāng)前閾值等于最小閾值,則將當(dāng)前閾值、最小閾值和最大閾值均調(diào)小,如果當(dāng)前閾值的當(dāng)前值等于最大閾值,則調(diào)小當(dāng)前閾值,如果當(dāng)前閾值的當(dāng)前值介于最小閾值和最大閾值之間,則將當(dāng)前閾值和最大閾值均調(diào)小;B13、判斷當(dāng)前閾值的當(dāng)前值與閾值估算范圍最小閾值至最大閾值的大小關(guān)系,如果當(dāng)前閾值等于最大閾值,則將當(dāng)前閾值、最小閾值和最大閾值均調(diào)大,如果當(dāng)前閾值的當(dāng)前值小于最大閾值,則調(diào)大當(dāng)前閾值。
在步驟B12中,所述將當(dāng)前閾值、最小閾值和最大閾值均調(diào)小的步驟包括令最小閾值等于當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量,最大閾值等于最大閾值減去當(dāng)前閾值與當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量的差,當(dāng)前閾值等于當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;和/或,在步驟B12中,所述調(diào)小當(dāng)前閾值的步驟包括將當(dāng)前閾值設(shè)置為當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;和/或,在步驟B12中,所述將當(dāng)前閾值和最大閾值均調(diào)小的步驟包括將最大閾值和當(dāng)前閾值均設(shè)置為當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;和/或,在步驟B13中,所述將當(dāng)前閾值、最小閾值和最大閾值均調(diào)大的步驟包括令最小閾值等于當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量,最大閾值等于最大閾值加上當(dāng)前閾值與最小閾值的差,當(dāng)前閾值等于最大閾值與最小閾值的差的一半;和/或,在步驟B13中,所述調(diào)大當(dāng)前閾值的步驟包括令當(dāng)前閾值等于當(dāng)前閾值加上最大閾值與最小閾值差的一半。
在步驟B中,所述觸發(fā)預(yù)備下載通道的步驟包括利用預(yù)備下載通道將攜帶下載起始位置信息的下載請(qǐng)求發(fā)送至流媒體服務(wù)器。
該方法進(jìn)一步包括預(yù)先設(shè)置當(dāng)前閾值,該當(dāng)前閾值表示當(dāng)前下載通道在與流媒體服務(wù)器的一次連接中總共應(yīng)下載的數(shù)據(jù)量;在步驟B中,所述下載起始位置信息是通過(guò)計(jì)算得到的,該計(jì)算過(guò)程為計(jì)算當(dāng)前下載通道已下載的流媒體數(shù)據(jù)量,以及當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量;利用當(dāng)前閾值減去所獲取的當(dāng)前下載通道已下載流媒體數(shù)據(jù)量,再加上所獲取的當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量,計(jì)算出下載起始位置。
在步驟B中,所述利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)的步驟包括流媒體服務(wù)器根據(jù)下載請(qǐng)求中攜帶的下載起始位置信息發(fā)送流媒體數(shù)據(jù),在移動(dòng)終端側(cè)利用預(yù)備下載通道作為當(dāng)前下載通道接收從所述下載起始位置處開(kāi)始的流媒體數(shù)據(jù)。
所述下載請(qǐng)求為HTTP協(xié)議類型的下載請(qǐng)求。
所述選擇下載通道的步驟包括從所述下載通道中任意選擇或按照特定規(guī)則進(jìn)行選擇,其中,所述特定規(guī)則為各下載通道的編號(hào)順序。
一種移動(dòng)終端,包括通信單元,用于實(shí)現(xiàn)移動(dòng)終端原有的包括通話功能和流媒體播放功能在內(nèi)的各種功能,其特征在于,該移動(dòng)終端還包括下載控制器,用于創(chuàng)建不少于兩路的下載通道,并從中選擇一路作為當(dāng)前下載通道,然后控制當(dāng)前下載通道接收流媒體數(shù)據(jù),以及,監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)時(shí),從所創(chuàng)建的空閑通道中選擇一個(gè)預(yù)備下載通道,并觸發(fā)預(yù)備下載通道,然后控制預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)。
所述下載控制器用于在得到當(dāng)前下載通道在本次流媒體下載中的剩余下載時(shí)間長(zhǎng)度等于響應(yīng)時(shí)間長(zhǎng)度時(shí),選擇并觸發(fā)預(yù)備下載通道,其中,所述響應(yīng)時(shí)間長(zhǎng)度為當(dāng)前下載通道在與流媒體服務(wù)器建立連接時(shí)發(fā)送下載請(qǐng)求到當(dāng)前下載通道首次接收到流媒體數(shù)據(jù)的時(shí)間長(zhǎng)度。
所述下載控制器進(jìn)一步用于設(shè)置表示當(dāng)前下載通道在與流媒體服務(wù)器的一次連接中總共應(yīng)下載數(shù)據(jù)量的當(dāng)前閾值,并利用當(dāng)前閾值計(jì)算剩余下載時(shí)間長(zhǎng)度。
所述下載控制器進(jìn)一步用于獲取在與流媒體服務(wù)器的一次連接中當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量,并在確定所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量與所設(shè)置的當(dāng)前閾值不相等時(shí),調(diào)整當(dāng)前閾值,并從空閑的下載通道中選擇一路下載通道,然后觸發(fā)該所選的下載通道,并將該下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)。
所述下載控制器與所述通信單元相連;下載控制器進(jìn)一步用于計(jì)算下載起始位置,并利用預(yù)備下載通道將攜帶所計(jì)算出的下載起始位置信息的下載請(qǐng)求發(fā)送至流媒體服務(wù)器來(lái)觸發(fā)預(yù)備下載通道。
所述下載控制器進(jìn)一步用于將當(dāng)前下載通道接收到的流媒體數(shù)據(jù)輸出至通信單元進(jìn)行流媒體播放。
可見(jiàn),本發(fā)明提出的方法具有以下優(yōu)點(diǎn)1、在本發(fā)明中,移動(dòng)終端中的下載控制器創(chuàng)建的各路下載通道不間斷的輪流下載,也就是說(shuō),當(dāng)一個(gè)下載通道斷開(kāi)與流媒體服務(wù)器的連接時(shí),另一個(gè)下載通道則可接收到流媒體服務(wù)器發(fā)送來(lái)的流媒體數(shù)據(jù),而不是開(kāi)始發(fā)送下載請(qǐng)求然后等待接收流媒體數(shù)據(jù),因此,保證了數(shù)據(jù)接收的連續(xù)性,突破了流媒體下載數(shù)據(jù)量的限制,大大減少了下載傳輸時(shí)延,提高了用戶的業(yè)務(wù)感受;2、在本發(fā)明中,移動(dòng)終端中的下載控制器發(fā)送的是HTTP協(xié)議類型的下載請(qǐng)求,也就是說(shuō),本發(fā)明移動(dòng)終端使用的是HTTP協(xié)議來(lái)實(shí)現(xiàn)流媒體下載,由于HTTP協(xié)議是網(wǎng)絡(luò)的內(nèi)核組件,也就是說(shuō),是所有具備gprs網(wǎng)絡(luò)功能的移動(dòng)終端均支持的協(xié)議類型,無(wú)需對(duì)移動(dòng)終端進(jìn)行功能增強(qiáng)即可使用,所以降低了對(duì)移動(dòng)終端的要求;3、本發(fā)明提出了一種通用的在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的方法,也就是說(shuō),無(wú)論本發(fā)明的移動(dòng)終端通過(guò)cmwap接入點(diǎn)還是cmnet接入點(diǎn)進(jìn)行網(wǎng)絡(luò)連接,均可應(yīng)用本發(fā)明提出的方法來(lái)實(shí)現(xiàn)流媒體下載,因此使得本發(fā)明實(shí)現(xiàn)靈活。
圖1是本發(fā)明提出的移動(dòng)終端的結(jié)構(gòu)示意圖。
圖2在本發(fā)明實(shí)施例中實(shí)現(xiàn)流媒體下載的流程圖。
圖3是在本發(fā)明實(shí)施例中調(diào)整下載參數(shù)的流程圖。
具體實(shí)施例方式
圖1是本發(fā)明提出的移動(dòng)終端的結(jié)構(gòu)示意圖。參見(jiàn)圖1,本發(fā)明所提出的移動(dòng)終端包括下載控制器和通信單元,其中,通信單元實(shí)現(xiàn)移動(dòng)終端原有的各種終端功能,包括通話功能和流媒體播放功能等,下載控制器完成流媒體下載的功能,包括創(chuàng)建不少于兩路的下載通道、對(duì)網(wǎng)絡(luò)側(cè)當(dāng)前接入點(diǎn)的選擇、HTTP的封裝和解析以及對(duì)下載通道進(jìn)行連接控制等所有的關(guān)于流媒體下載的功能,并且,下載控制器可將所下載的流媒體數(shù)據(jù)傳輸至通信單元進(jìn)行流媒體播放。
本發(fā)明移動(dòng)終端中包括下載控制器,當(dāng)進(jìn)行流媒體下載時(shí),下載控制器在移動(dòng)終端中創(chuàng)建不少于兩路的下載通道,從中選擇一路作為當(dāng)前下載通道,并利用當(dāng)前下載通道接收流媒體數(shù)據(jù);下載控制器監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)時(shí),從所創(chuàng)建的空閑下載通道中選擇一路作為預(yù)備下載通道并觸發(fā)該預(yù)備下載通道,在當(dāng)前下載通道完成該通道本次流媒體數(shù)據(jù)下載時(shí),利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù),直至流媒體數(shù)據(jù)下載完畢。
其中,所述的下載控制器觸發(fā)預(yù)備下載通道是指,下載控制器利用預(yù)備下載通道向流媒體服務(wù)器發(fā)送下載請(qǐng)求。由此可見(jiàn),在當(dāng)前下載通道進(jìn)行下載的過(guò)程中,確定何時(shí)觸發(fā)預(yù)備下載通道,即由該預(yù)備下載通道向接入點(diǎn)發(fā)送下載請(qǐng)求,以保證在當(dāng)前下載通道下載完畢與網(wǎng)絡(luò)側(cè)的流媒體服務(wù)器斷開(kāi)連接時(shí),該預(yù)備下載通道可立即接收到流媒體數(shù)據(jù),即實(shí)現(xiàn)不間斷輪流下載,非常重要。為了實(shí)現(xiàn)不間斷地下載,需要在當(dāng)前下載通道下載完畢或與流媒體服務(wù)器斷開(kāi)連接時(shí),預(yù)備下載通道可立即接收到流媒體數(shù)據(jù),而不是開(kāi)始發(fā)起請(qǐng)求并等待接收數(shù)據(jù)。
在本發(fā)明中,通過(guò)預(yù)先設(shè)置下載參數(shù)即最小閾值DownLoadMin、最大閾值DownLoadMax以及當(dāng)前閾值DownLoadLimit,并根據(jù)一個(gè)下載通道在與流媒體服務(wù)器的一次連接中實(shí)際所能接收到的流媒體數(shù)據(jù)量來(lái)不斷調(diào)整各下載參數(shù)的值,從而通過(guò)經(jīng)調(diào)整后的、接近于實(shí)際下載數(shù)據(jù)量限制的各下載參數(shù)計(jì)算出啟動(dòng)預(yù)備下載通道的時(shí)機(jī)。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
圖2是在本發(fā)明實(shí)施例中實(shí)現(xiàn)流媒體下載的流程圖。參見(jiàn)圖1和圖2,在本發(fā)明中,在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的過(guò)程具體包括以下步驟步驟201當(dāng)觸發(fā)移動(dòng)終端流媒體播放器中的下載控制器下載流媒體數(shù)據(jù)時(shí),下載控制器判斷自身是否已與一個(gè)接入點(diǎn),即cmwap接入點(diǎn)或cmnet接入點(diǎn)相連,如果是,則直接執(zhí)行步驟203,否則,執(zhí)行步驟202。
這里,比如當(dāng)用戶想要使用自己的移動(dòng)終端從Internet網(wǎng)絡(luò)上下載流媒體數(shù)據(jù)時(shí),則可在移動(dòng)終端上選擇特定的下載選項(xiàng)來(lái)觸發(fā)下載控制器。
步驟202下載控制器提示用戶選擇接入點(diǎn),并在獲取用戶選擇的接入點(diǎn)后,與用戶所選的當(dāng)前接入點(diǎn)完成網(wǎng)絡(luò)連接。
執(zhí)行到本步驟時(shí),下載控制器還未與一個(gè)接入點(diǎn)相連,因此,需要選擇一個(gè)接入點(diǎn)進(jìn)行連接。而下載控制器提示用戶選擇接入點(diǎn)是由于移動(dòng)終端自身無(wú)法知道用戶是cmwap接入點(diǎn)的用戶還是cmnet接入點(diǎn)的用戶,因此,需要用戶自己確定。另外,通過(guò)cmwap接入點(diǎn)實(shí)現(xiàn)流媒體下載與通過(guò)cmnet接入點(diǎn)實(shí)現(xiàn)流媒體下載的數(shù)據(jù)傳輸速度以及流量計(jì)費(fèi)等均不相同,需要用戶根據(jù)自己的實(shí)際需要來(lái)選擇。
步驟203下載控制器創(chuàng)建不少于兩路的下載通道,并將所有下載通道的初始狀態(tài)值均設(shè)置為閑置狀態(tài)。
這里,創(chuàng)建下載通道的過(guò)程是現(xiàn)有技術(shù),但可簡(jiǎn)單舉例為初始化下載通道接收緩存,初始化網(wǎng)絡(luò)連接等。
步驟204下載控制器設(shè)置三個(gè)下載參數(shù),最小閾值DownLoadMin、最大閾值DownLoadMax以及當(dāng)前閾值DownLoadLimit,并設(shè)置出最小閾值、最大閾值以及當(dāng)前閾值的初始值,其中,最小閾值的初始值等于當(dāng)前閾值的初始值且小于最大閾值的初始值。
這里,當(dāng)前閾值DownLoadLimit是估算一個(gè)下載通道在與流媒體服務(wù)器的一次連接中所能傳輸?shù)淖畲髷?shù)據(jù)量,用于在后續(xù)過(guò)程中確定下載控制器在使用當(dāng)前下載通道下載流媒體數(shù)據(jù)的同時(shí)啟動(dòng)另一個(gè)下載通道的時(shí)機(jī)。而最小閾值DownLoadMin和最大閾值DownLoadMax則是用于限定在后續(xù)過(guò)程中當(dāng)前閾值DownLoadLimit的調(diào)整幅度范圍。
另外,下載控制器可以根據(jù)移動(dòng)終端的處理能力和以往進(jìn)行流媒體下載的經(jīng)驗(yàn)值來(lái)設(shè)置最小閾值、最大閾值以及當(dāng)前閾值的初始值的大小。比如,設(shè)置最小閾值的初始值等于當(dāng)前閾值的初始值均為200K,最大閾值的初始值為400K。
步驟205下載控制器從所創(chuàng)建的各路下載通道中選擇出一個(gè)狀態(tài)值為閑置狀態(tài)的下載通道,并將所選的下載通道作為當(dāng)前下載通道,然后,將當(dāng)前下載通道的狀態(tài)值設(shè)置為激活狀態(tài)。
這里,下載控制器在選擇下載通道時(shí),可以任意選擇一個(gè)作為當(dāng)前下載通道,也可以按照一定的規(guī)則,比如各下載通道在自身中的編號(hào)順序等來(lái)選擇。
步驟206下載控制器通過(guò)當(dāng)前下載通道向流媒體服務(wù)器發(fā)送HTTP協(xié)議類型的下載請(qǐng)求,并啟動(dòng)預(yù)先設(shè)置的一個(gè)計(jì)時(shí)器,也就是使該計(jì)時(shí)器從0開(kāi)始計(jì)時(shí)。
這里,由于HTTP協(xié)議是移動(dòng)終端和流媒體服務(wù)器均固有支持的協(xié)議,因此,下載控制器可以直接向流媒體服務(wù)器發(fā)送HTTP協(xié)議類型的下載請(qǐng)求,也就是說(shuō),使用HTTP協(xié)議來(lái)封裝下載請(qǐng)求。
另外,預(yù)先設(shè)置一個(gè)計(jì)時(shí)器是為了記錄從當(dāng)前下載通道發(fā)送下載請(qǐng)求到當(dāng)前下載通道首次接收到流媒體數(shù)據(jù)的下載響應(yīng)時(shí)間長(zhǎng)度TReq,從而在后續(xù)過(guò)程中確定在使用當(dāng)前下載通道下載流媒體數(shù)據(jù)的同時(shí)啟動(dòng)另一個(gè)下載通道的時(shí)機(jī)。
而此時(shí),流媒體服務(wù)器接收到當(dāng)前下載通道發(fā)來(lái)的HTTP協(xié)議類型的下載請(qǐng)求后,則可將下載控制器所要求的流媒體數(shù)據(jù)通過(guò)當(dāng)前下載通道進(jìn)行傳輸。
步驟207當(dāng)首次從當(dāng)前下載通道接收到流媒體下載數(shù)據(jù)時(shí),下載控制器獲取計(jì)時(shí)器所記錄的當(dāng)前時(shí)間值。
這里,計(jì)時(shí)器所記錄的當(dāng)前時(shí)間值就是所需的下載響應(yīng)時(shí)間長(zhǎng)度TReq。
步驟208下載控制器繼續(xù)通過(guò)當(dāng)前下載通道下載流媒體數(shù)據(jù),并獲取當(dāng)前通道的數(shù)據(jù)傳輸速率Rate。
這里,下載控制器可以將當(dāng)前下載通道在1秒的時(shí)間長(zhǎng)度內(nèi)所接收到的流媒體數(shù)據(jù)量作為所獲取的當(dāng)前通道的數(shù)據(jù)傳輸速率Rate。
在步驟207和步驟208中,下載控制器從當(dāng)前下載通道接收到的流媒體下載數(shù)據(jù)是HTTP協(xié)議類型的,因此,下載控制器會(huì)進(jìn)一步利用HTTP協(xié)議對(duì)所接收到的流媒體下載數(shù)據(jù)進(jìn)行解析。
步驟209下載控制器根據(jù)當(dāng)前下載通道的數(shù)據(jù)傳輸速率Rate計(jì)算當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度,并判斷計(jì)算出的剩余下載時(shí)間長(zhǎng)度是否大于下載響應(yīng)時(shí)間長(zhǎng)度,如果是,則返回步驟208,否則,執(zhí)行步驟210。
這里,由于在無(wú)線網(wǎng)絡(luò)環(huán)境下,尤其是使用cmwap接入點(diǎn)的時(shí)候,一次連接所能下載的最大數(shù)據(jù)量是有限制的,也就是說(shuō),當(dāng)前接入點(diǎn)在通過(guò)當(dāng)前下載通道將一定數(shù)據(jù)量的流媒體數(shù)據(jù)傳輸至移動(dòng)終端后,就會(huì)斷開(kāi)與移動(dòng)終端中當(dāng)前下載通道的連接。所以,在本步驟中,計(jì)算當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度是為了獲取當(dāng)前距離當(dāng)前下載通道斷開(kāi)與流媒體服務(wù)器連接的時(shí)間長(zhǎng)度,從而確定另一個(gè)下載通道發(fā)送下載請(qǐng)求的時(shí)機(jī)。
而計(jì)算當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度的方法是獲取當(dāng)前下載通道在與流媒體服務(wù)器的本次連接中已下載的流媒體數(shù)據(jù)量DownLoadNow;將當(dāng)前閾值DownLoadLimit減去所獲取的DownLoadNow,并用所得的差除以當(dāng)前通道的數(shù)據(jù)傳輸速率Rate,然后將所得的商作為當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度,也就是,當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度=(DownLoadLimit-DownLoadNow)/Rate。
另外,判斷當(dāng)前下載通道的剩余下載時(shí)間長(zhǎng)度是否大于下載響應(yīng)時(shí)間長(zhǎng)度,是為了確定當(dāng)前是否需要啟動(dòng)另外一個(gè)下載通道。也就是說(shuō),
如果當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度大于下載響應(yīng)時(shí)間長(zhǎng)度,則表明即使現(xiàn)在由另一個(gè)下載通道向流媒體服務(wù)器發(fā)送下載請(qǐng)求,那么,在流媒體服務(wù)器響應(yīng)該另一個(gè)下載通道的時(shí)刻,當(dāng)前下載通道還未完成流媒體數(shù)據(jù)下載,還需繼續(xù)執(zhí)行下載過(guò)程,因此,當(dāng)前不應(yīng)啟動(dòng)另一個(gè)下載通道,僅由當(dāng)前下載通道繼續(xù)執(zhí)行流媒體下載即可,即執(zhí)行本步驟中所述的返回步驟208。
如果當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度小于或等于下載響應(yīng)時(shí)間長(zhǎng)度,則表明如果現(xiàn)在由另一個(gè)下載通道向流媒體服務(wù)器發(fā)送下載請(qǐng)求,那么,在流媒體服務(wù)器響應(yīng)該另一個(gè)下載通道的時(shí)刻,當(dāng)前下載通道已經(jīng)完成了流媒體數(shù)據(jù)的下載,下載控制器可以立即向該另一路下載通道接收流媒體數(shù)據(jù),因此,為了保證數(shù)據(jù)的連續(xù)性減少移動(dòng)終端內(nèi)的下載傳輸時(shí)延,在當(dāng)前下載通道剩余的下載時(shí)間長(zhǎng)度小于或等于下載響應(yīng)時(shí)間長(zhǎng)度時(shí),應(yīng)立即啟動(dòng)另一個(gè)下載通道,也就是說(shuō),在當(dāng)前下載通道繼續(xù)執(zhí)行流媒體下載的同時(shí),由該另一個(gè)下載通道向流媒體服務(wù)器發(fā)送HTTP協(xié)議類型的下載請(qǐng)求,即執(zhí)行步驟210。
步驟210下載控制器計(jì)算下載起始位置,然后從所創(chuàng)建的下載通道中選擇一個(gè)狀態(tài)值為閑置狀態(tài)的下載通道,將所選的下載通道作為預(yù)備下載通道,然后,通過(guò)該預(yù)備下載通道向流媒體服務(wù)器發(fā)送HTTP協(xié)議類型的、攜帶計(jì)算出的下載起始位置信息的下載請(qǐng)求,并重新啟動(dòng)自身中的計(jì)時(shí)器以及將該預(yù)備下載通道的狀態(tài)值設(shè)置為已發(fā)送請(qǐng)求狀態(tài)。
這里,所述的預(yù)備下載通道可以是下載控制器中狀態(tài)值為閑置狀態(tài)的所有下載通道中任意選擇或按照一定規(guī)則比如編號(hào)順序等來(lái)選擇的。
另外,計(jì)算下載起始位置是為了在當(dāng)前下載通道下載完畢后,該預(yù)備下載通道能夠接著當(dāng)前下載通道所下載完的流媒體數(shù)據(jù)位置繼續(xù)下載,也就是說(shuō),需要保證下載數(shù)據(jù)的連續(xù)性和完整性。
而本步驟中計(jì)算下載起始位置的過(guò)程為下載起始位置=當(dāng)前閾值DownLoadLimit-當(dāng)前下載通道已經(jīng)下載的數(shù)據(jù)量DownLoadNow+當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量。在該計(jì)算式中,由于當(dāng)前閾值DownLoadLimit是當(dāng)前下載通道在本次與流媒體服務(wù)器的連接中總共應(yīng)下載的數(shù)據(jù)量,因此用當(dāng)前閾值DownLoadLimit-當(dāng)前下載通道已經(jīng)下載的數(shù)據(jù)量DownLoadNow,得到的是當(dāng)前下載通道在本次與當(dāng)前接入點(diǎn)的連接中還需下載的流媒體數(shù)據(jù)量,然后用所得的(DownLoadLimit-DownLoadNow),即當(dāng)前下載通道在本次與流媒體服務(wù)器的連接中還需下載的流媒體數(shù)據(jù)量,加上當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量,得到的就是在后續(xù)過(guò)程中當(dāng)前下載通道下載完畢與流媒體服務(wù)器斷開(kāi)連接時(shí),所啟動(dòng)的預(yù)備下載通道應(yīng)該繼續(xù)下載的流媒體數(shù)據(jù)的下載起始位置。比如,當(dāng)前移動(dòng)終端通過(guò)所創(chuàng)建的兩路下載通道總共從當(dāng)前接入點(diǎn)處下載了120K的流媒體數(shù)據(jù),當(dāng)前下載通道在與當(dāng)前接入點(diǎn)的本次連接中已經(jīng)下載了20K的數(shù)據(jù),當(dāng)前閾值DownLoadLimit即當(dāng)前下載通道在與當(dāng)前接入點(diǎn)的本次連接中總共應(yīng)下載的流媒體數(shù)據(jù)為50K,這樣,用(50K-20K)得到的就是當(dāng)前下載通道在與當(dāng)前接入點(diǎn)的本次連接中還需下載的數(shù)據(jù)量,然后用50K-20K+120K,得到的就是在后續(xù)過(guò)程中,當(dāng)前下載通道斷開(kāi)與當(dāng)前接入點(diǎn)的本次連接時(shí),移動(dòng)終端總共下載完成的流媒體數(shù)據(jù)量,也就是所啟動(dòng)的預(yù)備下載通道應(yīng)該繼續(xù)下載的流媒體數(shù)據(jù)的下載起始位置。
在本步驟中,所啟動(dòng)的預(yù)備下載通道會(huì)將計(jì)算出的下載起始位置的信息攜帶在下載請(qǐng)求中發(fā)送給流媒體服務(wù)器。這樣,流媒體服務(wù)器接收到該下載請(qǐng)求后,則可按照該下載請(qǐng)求中攜帶的下載起始位置開(kāi)始將流媒體數(shù)據(jù)傳輸給該預(yù)備下載通道,從而保證了傳輸流媒體數(shù)據(jù)的連續(xù)性。
步驟211當(dāng)前下載通道停止下載流媒體數(shù)據(jù)并斷開(kāi)與流媒體服務(wù)器的連接時(shí),下載控制器判斷所需的流媒體數(shù)據(jù)是否已全部下載完畢,如果是,則結(jié)束當(dāng)前流程,否則,執(zhí)行步驟212。
這里,由于已預(yù)先設(shè)置了限制當(dāng)前下載通道在與流媒體服務(wù)器的一次連接中應(yīng)下載的數(shù)據(jù)量DownLoadLimit,因此,所述的當(dāng)前下載通道停止下載流媒體數(shù)據(jù)并斷開(kāi)與流媒體服務(wù)器的連接可以是當(dāng)前下載通道完成本次下載任務(wù)DownLoadLimit后,主動(dòng)停止下載流媒體數(shù)據(jù)并斷開(kāi)與流媒體服務(wù)器的連接;或者,所述的當(dāng)前下載通道停止下載流媒體數(shù)據(jù)并斷開(kāi)與流媒體服務(wù)器的連接也可以是在當(dāng)前下載通道還未完成本次下載任務(wù)DownLoadLimit時(shí),由于流媒體服務(wù)器主動(dòng)斷開(kāi)與當(dāng)前下載通道的連接,使得當(dāng)前下載通道被迫停止下載并斷開(kāi)與流媒體服務(wù)器的連接。
另外,由于移動(dòng)終端預(yù)先知道本次所需下載的全部流媒體的數(shù)據(jù)量,因此,在本步驟中,移動(dòng)終端可以通過(guò)判斷當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量是否等于本次所需下載的全部流媒體的數(shù)據(jù)量來(lái)判斷當(dāng)前的流媒體數(shù)據(jù)是否已全部下載完畢。
步驟212下載控制器判斷當(dāng)前下載通道在與流媒體服務(wù)器的本次連接中總共下載的流媒體數(shù)據(jù)量DownLoadLen是否等于當(dāng)前閾值DownLoadLimit,如果是,則執(zhí)行步驟216,否則,執(zhí)行步驟213。
這里,如果DownLoadLen等于DownLoadLimit,則表明當(dāng)前接入點(diǎn)在與下載通道的一次連接中實(shí)際為下載通道提供的流媒體數(shù)據(jù)量可以達(dá)到預(yù)先設(shè)置的估算下載通道在與流媒體服務(wù)器的一次連接所能傳輸?shù)淖畲髷?shù)據(jù)量DownLoadLimit,也就是說(shuō),預(yù)先在步驟210中所計(jì)算出的下載起始位置可以適用于當(dāng)前的情況,可立即使用預(yù)備下載通道接收流媒體數(shù)據(jù),即執(zhí)行后續(xù)的步驟216;如果DownLoadLen不等于DownLoadLimit,則表明當(dāng)前接入點(diǎn)在與下載通道的一次連接中實(shí)際為下載通道提供的流媒體數(shù)據(jù)量無(wú)法滿足預(yù)先設(shè)置的估算下載通道在與流媒體服務(wù)器的一次連接所能傳輸?shù)淖畲髷?shù)據(jù)量DownLoadLimit,也就是說(shuō),預(yù)先在步驟210中所計(jì)算出的下載起始位置無(wú)法適用于當(dāng)前的情況,無(wú)法通過(guò)預(yù)備下載通道立即接收流媒體數(shù)據(jù),應(yīng)重新計(jì)算下載起始位置,并調(diào)整預(yù)先設(shè)置的下載參數(shù),即執(zhí)行后續(xù)的步驟213。
步驟213下載控制器調(diào)整下載參數(shù),即最小閾值DownLoadMin、最大閾值DownLoadMax以及當(dāng)前閾值DownLoadLimit的值。
這里,下載控制器調(diào)整最小閾值DownLoadMin、最大閾值DownLoadMax以及當(dāng)前閾值DownLoadLimit的值,是為了通過(guò)每次的調(diào)整過(guò)程使得對(duì)下載通道在與流媒體服務(wù)器的一次連接中實(shí)際應(yīng)下載的數(shù)據(jù)量即當(dāng)前閾值DownLoadLimit的值逐漸逼近當(dāng)前接入點(diǎn)在一次連接中實(shí)際允許下載通道下載的數(shù)據(jù)量的限制值,從而更加準(zhǔn)確的確定啟動(dòng)預(yù)備下載通道的時(shí)機(jī)。
本步驟213的實(shí)現(xiàn)過(guò)程可參見(jiàn)圖3所示,具體包括以下步驟步驟301下載控制器判斷所獲取的DownLoadLen是否小于當(dāng)前閾值DownLoadLimit,如果是,則執(zhí)行步驟302,否則,執(zhí)行步驟306。
這里,由于當(dāng)前閾值DownLoadLimit是預(yù)先設(shè)置的允許當(dāng)前下載通道在通過(guò)當(dāng)前接入點(diǎn)與流媒體服務(wù)器的一次連接中應(yīng)下載的數(shù)據(jù)量,而所獲取的DownLoadLen才準(zhǔn)確反映了當(dāng)前下載通道通過(guò)當(dāng)前接入點(diǎn)的一次連接中實(shí)際下載的數(shù)據(jù)量,因此,本步驟中將實(shí)際所得的DownLoadLen與預(yù)先設(shè)置的DownLoadLimit進(jìn)行比較,如果DownLoadLen小于DownLoadLimit,則表明在實(shí)際業(yè)務(wù)實(shí)現(xiàn)中一個(gè)下載通道通過(guò)當(dāng)前接入點(diǎn)與流媒體服務(wù)器的一次連接中實(shí)際所能下載的數(shù)據(jù)量無(wú)法達(dá)到所限定的數(shù)據(jù)量DownLoadLimit,也就是說(shuō),應(yīng)將下載參數(shù)DownLoadLimit的值調(diào)小為DownLoadLen,以保證DownLoadLimit的值盡可能的接近實(shí)際業(yè)務(wù)中的限制值,從而保證依據(jù)DownLoadLimit所確定的啟動(dòng)下一個(gè)下載通道的時(shí)機(jī)準(zhǔn)確,因此,執(zhí)行后續(xù)的步驟303;如果DownLoadLen不小于DownLoadLimit,則表明在實(shí)際業(yè)務(wù)實(shí)現(xiàn)中一個(gè)下載通道通過(guò)當(dāng)前接入點(diǎn)與流媒體服務(wù)器的一次連接中實(shí)際所能下載的數(shù)據(jù)量超過(guò)了所限定的數(shù)據(jù)量DownLoadLimit,也就是說(shuō),應(yīng)將下載參數(shù)DownLoadLimit的值調(diào)大,以保證DownLoadLimit的值盡可能的接近實(shí)際業(yè)務(wù)中的限制值,從而保證依據(jù)DownLoadLimit所確定的啟動(dòng)下一個(gè)下載通道的時(shí)機(jī)準(zhǔn)確,因此,執(zhí)行后續(xù)的步驟307。
步驟302判斷DownLoadLimit的當(dāng)前值與閾值估算范圍DownLoadMin至DownLoadMax的大小關(guān)系,如果DownLoadLimit的當(dāng)前值等于DownLoadMin,則執(zhí)行步驟303,如果DownLoadLimit的當(dāng)前值等于DownLoadMax,則直接執(zhí)行步驟304,如果DownLoadLimit的當(dāng)前值介于DownLoadMin和DownLoadMax之間,則直接執(zhí)行步驟305。
執(zhí)行到本步驟時(shí),由于DownLoadLen小于DownLoadLimit,因此,如果DownLoadLimit的當(dāng)前值等于DownLoadMin,則表明DownLoadLen也小于DownLoadMin和DownLoadMax,則意味著一個(gè)下載通道在一次連接中實(shí)際所能下載的數(shù)據(jù)量DownLoadLen小于預(yù)先設(shè)置的閾值估算范圍即DownLoadMin至DownLoadMax的范圍,因此,應(yīng)將DownLoadMin,DownLoadLimit和DownLoadMax的值均應(yīng)調(diào)小,以適應(yīng)實(shí)際業(yè)務(wù)中的一次下載數(shù)據(jù)量,也就是,執(zhí)行后續(xù)步驟303;如果DownLoadLimit的當(dāng)前值等于DownLoadMax,則表明DownLoadLen也小于DownLoadMax,則意味著一個(gè)下載通道在一次連接中實(shí)際所能下載的數(shù)據(jù)量DownLoadLen在預(yù)先設(shè)置的閾值估算范圍即DownLoadMin至DownLoadMax的范圍之內(nèi),因此,無(wú)需調(diào)整DownLoadMin和DownLoadMax的值,而只需調(diào)整DownLoadLimit,也就是,執(zhí)行后續(xù)步驟304;如果DownLoadLimit的當(dāng)前值介于DownLoadMin和DownLoadMax之間,則表明DownLoadLen遠(yuǎn)小于DownLoadMax,也就是說(shuō),DownLoadMax的值設(shè)置的過(guò)高,所以應(yīng)調(diào)整DownLoadMax和DownLoadLimit的值,也就是,執(zhí)行后續(xù)步驟305;步驟303令DownLoadMin=DownLoadLen,且,DownLoadMax=DownLoadMax-(DownLoadLimit-DownLoadLen),且DownLoadLimit=DownLoadLen,得到當(dāng)前的經(jīng)調(diào)整后的DownLoadMin,DownLoadMax和DownLoadLimit,結(jié)束當(dāng)前流程。
步驟304將DownLoadLimit的當(dāng)前值設(shè)置為DownLoadLen,即DownLoadLimit=DownLoadLen,結(jié)束當(dāng)前流程。
步驟305將DownLoadMax和DownLoadLimit的值均設(shè)置為DownLoadLen,結(jié)束當(dāng)前流程。
步驟306判斷DownLoadLimit的當(dāng)前值與閾值估算范圍DownLoadMin至DownLoadMax的大小關(guān)系,如果DownLoadLimit的當(dāng)前值等于DownLoadMax,則執(zhí)行步驟307,如果DownLoadLimit的當(dāng)前值小于DownLoadMax,則直接執(zhí)行步驟308。
執(zhí)行到本步驟,由于DownLoadLen不小于即大于或等于DownLoadLimit,因此,如果DownLoadLimit的當(dāng)前值等于DownLoadMax,則表明DownLoadLen也大于或等于DownLoadMin和DownLoadMax,則意味著一個(gè)下載通道在一次連接中實(shí)際所能下載的數(shù)據(jù)量DownLoadLen大于預(yù)先設(shè)置的閾值估算范圍即DownLoadMin至DownLoadMax的范圍,因此,應(yīng)將DownLoadMin,DownLoadLimit和DownLoadMax的值均應(yīng)調(diào)大,以適應(yīng)實(shí)際業(yè)務(wù)中的一次下載數(shù)據(jù)量,也就是,執(zhí)行后續(xù)步驟307;如果DownLoadLimit的當(dāng)前值小于DownLoadMax,則意味著一個(gè)下載通道在一次連接中實(shí)際所能下載的數(shù)據(jù)量DownLoadLen很可能在預(yù)先設(shè)置的閾值估算范圍即DownLoadMin至DownLoadMax的范圍之內(nèi),因此,無(wú)需調(diào)整DownLoadMin和DownLoadMax的值,而只需調(diào)整DownLoadLimit,也就是,執(zhí)行后續(xù)步驟308。
步驟307令DownLoadMin=DownLoadLen,且,DownLoadMax=DownLoadMax+(DownLoadLimit-DownLoadMin),且DownLoadLimit=(DownLoadMax-DownLoadMin)/2,得到當(dāng)前的經(jīng)調(diào)整后的DownLoadMin,DownLoadMax和DownLoadLimit,結(jié)束當(dāng)前流程。
步驟308令DownLoadLimit=DownLoadLimit+(DownLoadMax-DownLoadMin)/2。
至此,完成了本步驟213的調(diào)整下載參數(shù)的過(guò)程。
這里,需要說(shuō)明的是,上述步驟303、步驟304、步驟305、步驟307和步驟308中的具體調(diào)整過(guò)程只是本實(shí)施例所列舉的一個(gè)較佳的具體調(diào)整方式,本發(fā)明還可以存在其它的具體調(diào)整方式。
步驟214下載控制器獲取當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量TotalLen,將所獲取的TotalLen作為當(dāng)前的下載起始位置,然后從所創(chuàng)建的狀態(tài)值為閑置狀態(tài)的所有下載通道中選擇出一個(gè)下載通道。
步驟215下載控制器將所選擇的下載通道作為當(dāng)前下載通道,然后由該當(dāng)前下載通道通過(guò)當(dāng)前接入點(diǎn)向流媒體服務(wù)器發(fā)送攜帶當(dāng)前下載起始位置信息即TotalLen信息的HTTP協(xié)議類型的下載請(qǐng)求,同時(shí)啟動(dòng)預(yù)先設(shè)置的一個(gè)計(jì)時(shí)器,也就是使該計(jì)時(shí)器從0開(kāi)始計(jì)時(shí),返回步驟207。
步驟216下載控制器判斷當(dāng)前是否存在狀態(tài)值為已發(fā)送請(qǐng)求狀態(tài)的預(yù)備下載通道,如果是,則執(zhí)行步驟217,否則則返回步驟214。
步驟217下載控制器將狀態(tài)值為已發(fā)送請(qǐng)求狀態(tài)的預(yù)備下載通道作為當(dāng)前下載通道,將該當(dāng)前下載通道的狀態(tài)值設(shè)置為激活狀態(tài),同時(shí)通過(guò)該當(dāng)前下載通道接收流媒體服務(wù)器發(fā)送來(lái)的流媒體數(shù)據(jù),返回步驟207。
這里,需要說(shuō)明的是,上述步驟213與步驟214至步驟215之間并無(wú)執(zhí)行上的先后順序,只是為了便于描述而拆分的兩個(gè)步驟,在具體實(shí)現(xiàn)時(shí),步驟213與步驟214至步驟215的過(guò)程可以同時(shí)進(jìn)行。
另外,還需說(shuō)明的是,在上述圖2所示的流程中,本發(fā)明是根據(jù)DownLoadMin、DownLoadMax和DownLoadLen來(lái)調(diào)整DownLoadLimit,本發(fā)明還可以存在其它的調(diào)整DownLoadLimit的方式,比如,不設(shè)置DownLoadMin和DownLoadMax,只根據(jù)DownLoadLen來(lái)調(diào)整DownLoadLimit,也就是直接將DownLoadLimit的當(dāng)前值設(shè)置為DownLoadLen。
至此,本發(fā)明完成了在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的過(guò)程。
由以上描述可以看出,本發(fā)明提出的移動(dòng)終端和基于該移動(dòng)終端的實(shí)現(xiàn)流媒體下載的方法,既可適用于通過(guò)cmwap接入點(diǎn)接入網(wǎng)絡(luò)實(shí)現(xiàn)流媒體下載,也可以適用于通過(guò)cmnet接入點(diǎn)接入網(wǎng)絡(luò)實(shí)現(xiàn)流媒體下載。這是由于,當(dāng)通過(guò)cmwap接入點(diǎn)接入網(wǎng)絡(luò)實(shí)現(xiàn)流媒體下載時(shí),即使網(wǎng)絡(luò)側(cè)的cmwap接入點(diǎn)在提供了一定數(shù)量的流媒體數(shù)據(jù)后,主動(dòng)斷開(kāi)與移動(dòng)終端當(dāng)前下載通道的連接,由于在本發(fā)明中已預(yù)先啟動(dòng)了預(yù)備下載通道,因此,可直接由該預(yù)備下載通道立即接收流媒體數(shù)據(jù);當(dāng)通過(guò)cmnet接入點(diǎn)接入網(wǎng)絡(luò)實(shí)現(xiàn)流媒體下載時(shí),由于已預(yù)先設(shè)置了限制當(dāng)前下載通道一次應(yīng)下載的流媒體數(shù)據(jù)量DownLoadLimit,在當(dāng)前下載通道下載的流媒體數(shù)據(jù)量到達(dá)DownLoadLimit時(shí),當(dāng)前下載通道會(huì)主動(dòng)斷開(kāi)與網(wǎng)絡(luò)側(cè)的連接,而由于已預(yù)先啟動(dòng)了預(yù)備下載通道,因此,可在斷開(kāi)連接時(shí)直接由該預(yù)備下載通道立即接收流媒體數(shù)據(jù)。本發(fā)明的整個(gè)流媒體下載的實(shí)現(xiàn)過(guò)程不會(huì)受當(dāng)前的接入點(diǎn)是cmwap接入點(diǎn)還是cmnet接入點(diǎn)的影響,也就是說(shuō),既可適用于通過(guò)cmwap接入點(diǎn)接入網(wǎng)絡(luò)實(shí)現(xiàn)流媒體下載,也可以適用于通過(guò)cmnet接入點(diǎn)接入網(wǎng)絡(luò)實(shí)現(xiàn)流媒體下載。
本發(fā)明中所述的移動(dòng)終端包括手機(jī)、無(wú)線個(gè)人數(shù)字助理(PDA)、無(wú)線手特設(shè)備等所有具有移動(dòng)功能的無(wú)線通信裝置。
總之,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的方法,其特征在于,該方法包括以下步驟A、在移動(dòng)終端中創(chuàng)建不少于兩路的下載通道,并從中選擇一路作為當(dāng)前下載通道,利用當(dāng)前下載通道接收流媒體數(shù)據(jù);B、監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)時(shí),從所創(chuàng)建的空閑下載通道中選擇一路作為預(yù)備下載通道并觸發(fā)該預(yù)備下載通道,在當(dāng)前下載通道完成該通道本次流媒體數(shù)據(jù)下載時(shí),利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù),重復(fù)本步驟,直至流媒體數(shù)據(jù)下載完畢。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A進(jìn)一步包括獲取當(dāng)前下載通道在與流媒體服務(wù)器建立連接時(shí)發(fā)送下載請(qǐng)求到當(dāng)前下載通道首次接收到流媒體數(shù)據(jù)的響應(yīng)時(shí)間長(zhǎng)度;在步驟B中,所述監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)的步驟包括實(shí)時(shí)計(jì)算當(dāng)前下載通道在本次流媒體下載中的剩余下載時(shí)間長(zhǎng)度,并在監(jiān)視到所計(jì)算出的剩余下載時(shí)間長(zhǎng)度等于所獲取的響應(yīng)時(shí)間長(zhǎng)度時(shí),到達(dá)所述觸發(fā)時(shí)機(jī)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法進(jìn)一步包括在當(dāng)前下載通道與流媒體服務(wù)器建立連接發(fā)送下載請(qǐng)求時(shí),啟動(dòng)預(yù)先設(shè)置的計(jì)時(shí)器;在步驟A中,所述獲取響應(yīng)時(shí)間長(zhǎng)度的步驟包括在當(dāng)前下載通道首次接收到流媒體數(shù)據(jù)時(shí),獲取所述計(jì)時(shí)器的當(dāng)前值,將所獲取的計(jì)時(shí)器的當(dāng)前值作為響應(yīng)時(shí)間長(zhǎng)度。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先設(shè)置當(dāng)前閾值,該當(dāng)前閾值表示當(dāng)前下載通道在與流媒體服務(wù)器的一次連接中總共應(yīng)下載的數(shù)據(jù)量;所述計(jì)算剩余下載時(shí)間長(zhǎng)度的步驟包括獲取當(dāng)前下載通道的數(shù)據(jù)傳輸速率以及當(dāng)前下載通道在本次流媒體下載中已下載的流媒體數(shù)據(jù)量,利用當(dāng)前閾值、所獲取的當(dāng)前下載通道的數(shù)據(jù)傳輸速率以及所獲取的當(dāng)前下載通道已下載的流媒體數(shù)據(jù)量,計(jì)算剩余下載時(shí)間長(zhǎng)度。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在當(dāng)前下載通道完成該通道本次流媒體數(shù)據(jù)下載時(shí),并在利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)之前,所述步驟B進(jìn)一步包括獲取在與流媒體服務(wù)器的本次連接中當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;判斷所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量是否等于當(dāng)前閾值,如果等于,則繼續(xù)執(zhí)行所述的利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)的步驟,否則,調(diào)整當(dāng)前閾值,并從空閑的下載通道中選擇一路下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù),重復(fù)本步驟,直至流媒體數(shù)據(jù)下載完畢。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述調(diào)整當(dāng)前閾值的步驟包括利用所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量調(diào)整當(dāng)前閾值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先設(shè)置最小閾值和最大閾值,該最小閾值和最大閾值用于限定當(dāng)前閾值的調(diào)整幅度范圍;所述利用當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量調(diào)整當(dāng)前閾值的步驟進(jìn)一步包括利用最小閾值和最大閾值調(diào)整當(dāng)前閾值,并調(diào)整最小閾值和最大閾值。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述調(diào)整的步驟包括B11、判斷所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量是否小于當(dāng)前閾值,如果是,則執(zhí)行步驟B12,否則,執(zhí)行步驟B13;B12、判斷當(dāng)前閾值與閾值估算范圍最小閾值至最大閾值的大小關(guān)系,如果當(dāng)前閾值等于最小閾值,則將當(dāng)前閾值、最小閾值和最大閾值均調(diào)小,如果當(dāng)前閾值的當(dāng)前值等于最大閾值,則調(diào)小當(dāng)前閾值,如果當(dāng)前閾值的當(dāng)前值介于最小閾值和最大閾值之間,則將當(dāng)前閾值和最大閾值均調(diào)??;B13、判斷當(dāng)前閾值的當(dāng)前值與閾值估算范圍最小閾值至最大閾值的大小關(guān)系,如果當(dāng)前閾值等于最大閾值,則將當(dāng)前閾值、最小閾值和最大閾值均調(diào)大,如果當(dāng)前閾值的當(dāng)前值小于最大閾值,則調(diào)大當(dāng)前閾值。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,在步驟B12中,所述將當(dāng)前閾值、最小閾值和最大閾值均調(diào)小的步驟包括令最小閾值等于當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量,最大閾值等于最大閾值減去當(dāng)前閾值與當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量的差,當(dāng)前閾值等于當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;和/或,在步驟B12中,所述調(diào)小當(dāng)前閾值的步驟包括將當(dāng)前閾值設(shè)置為當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;和/或,在步驟B12中,所述將當(dāng)前閾值和最大閾值均調(diào)小的步驟包括將最大閾值和當(dāng)前閾值均設(shè)置為當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量;和/或,在步驟B13中,所述將當(dāng)前閾值、最小閾值和最大閾值均調(diào)大的步驟包括令最小閾值等于當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量,最大閾值等于最大閾值加上當(dāng)前閾值與最小閾值的差,當(dāng)前閾值等于最大閾值與最小閾值的差的一半;和/或,在步驟B13中,所述調(diào)大當(dāng)前閾值的步驟包括令當(dāng)前閾值等于當(dāng)前閾值加上最大閾值與最小閾值差的一半。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟B中,所述觸發(fā)預(yù)備下載通道的步驟包括利用預(yù)備下載通道將攜帶下載起始位置信息的下載請(qǐng)求發(fā)送至流媒體服務(wù)器。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先設(shè)置當(dāng)前閾值,該當(dāng)前閾值表示當(dāng)前下載通道在與流媒體服務(wù)器的一次連接中總共應(yīng)下載的數(shù)據(jù)量;在步驟B中,所述下載起始位置信息是通過(guò)計(jì)算得到的,該計(jì)算過(guò)程為計(jì)算當(dāng)前下載通道已下載的流媒體數(shù)據(jù)量,以及當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量;利用當(dāng)前閾值減去所獲取的當(dāng)前下載通道已下載流媒體數(shù)據(jù)量,再加上所獲取的當(dāng)前所有下載通道總共已下載的數(shù)據(jù)量,計(jì)算出下載起始位置。
12.根據(jù)權(quán)利要求10或11所述的方法,其特征在于,在步驟B中,所述利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)的步驟包括流媒體服務(wù)器根據(jù)下載請(qǐng)求中攜帶的下載起始位置信息發(fā)送流媒體數(shù)據(jù),在移動(dòng)終端側(cè)利用預(yù)備下載通道作為當(dāng)前下載通道接收從所述下載起始位置處開(kāi)始的流媒體數(shù)據(jù)。
13.根據(jù)權(quán)利要求2、3或10所述的方法,其特征在于,所述下載請(qǐng)求為HTTP協(xié)議類型的下載請(qǐng)求。
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選擇下載通道的步驟包括從所述下載通道中任意選擇或按照特定規(guī)則進(jìn)行選擇,其中,所述特定規(guī)則為各下載通道的編號(hào)順序。
15.一種移動(dòng)終端,包括通信單元,用于實(shí)現(xiàn)移動(dòng)終端原有的包括通話功能和流媒體播放功能在內(nèi)的各種功能,其特征在于,該移動(dòng)終端還包括下載控制器,用于創(chuàng)建不少于兩路的下載通道,并從中選擇一路作為當(dāng)前下載通道,然后控制當(dāng)前下載通道接收流媒體數(shù)據(jù),以及,監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)時(shí),從所創(chuàng)建的空閑通道中選擇一個(gè)預(yù)備下載通道,并觸發(fā)預(yù)備下載通道,然后控制預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)。
16.根據(jù)權(quán)利要求15所述的移動(dòng)終端,其特征在于,所述下載控制器用于在得到當(dāng)前下載通道在本次流媒體下載中的剩余下載時(shí)間長(zhǎng)度等于響應(yīng)時(shí)間長(zhǎng)度時(shí),選擇并觸發(fā)預(yù)備下載通道,其中,所述響應(yīng)時(shí)間長(zhǎng)度為當(dāng)前下載通道在與流媒體服務(wù)器建立連接時(shí)發(fā)送下載請(qǐng)求到當(dāng)前下載通道首次接收到流媒體數(shù)據(jù)的時(shí)間長(zhǎng)度。
17.根據(jù)權(quán)利要求16所述的移動(dòng)終端,其特征在于,所述下載控制器進(jìn)一步用于設(shè)置表示當(dāng)前下載通道在與流媒體服務(wù)器的一次連接中總共應(yīng)下載數(shù)據(jù)量的當(dāng)前閾值,并利用當(dāng)前閾值計(jì)算剩余下載時(shí)間長(zhǎng)度。
18.根據(jù)權(quán)利要求17所述的移動(dòng)終端,其特征在于,所述下載控制器進(jìn)一步用于獲取在與流媒體服務(wù)器的一次連接中當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量,并在確定所獲取的當(dāng)前下載通道實(shí)際下載的數(shù)據(jù)量與所設(shè)置的當(dāng)前閾值不相等時(shí),調(diào)整當(dāng)前閾值,并從空閑的下載通道中選擇一路下載通道,然后觸發(fā)該所選的下載通道,并將該下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù)。
19.根據(jù)權(quán)利要求15至18中任意一項(xiàng)所述的移動(dòng)終端,其特征在于,所述下載控制器進(jìn)一步用于計(jì)算下載起始位置,并利用預(yù)備下載通道將攜帶所計(jì)算出的下載起始位置信息的下載請(qǐng)求發(fā)送至流媒體服務(wù)器來(lái)觸發(fā)預(yù)備下載通道。
20.根據(jù)權(quán)利要求15所述的移動(dòng)終端,其特征在于,所述下載控制器與所述通信單元相連;所述下載控制器進(jìn)一步用于將當(dāng)前下載通道接收到的流媒體數(shù)據(jù)輸出至通信單元進(jìn)行流媒體播放。
全文摘要
本發(fā)明公開(kāi)了一種移動(dòng)終端及在移動(dòng)終端上實(shí)現(xiàn)流媒體下載的方法,該移動(dòng)終端包括原有的通信單元和新設(shè)置的下載控制器。該方法包括在移動(dòng)終端中創(chuàng)建不少于兩路的下載通道,并從中選擇一路作為當(dāng)前下載通道,利用當(dāng)前下載通道接收流媒體數(shù)據(jù);監(jiān)視到達(dá)觸發(fā)時(shí)機(jī)時(shí),從所創(chuàng)建的空閑下載通道中選擇一路作為預(yù)備下載通道并觸發(fā)該預(yù)備下載通道,在當(dāng)前下載通道完成該通道本次流媒體數(shù)據(jù)下載時(shí),利用預(yù)備下載通道作為當(dāng)前下載通道接收流媒體數(shù)據(jù),直至流媒體數(shù)據(jù)下載完畢。本發(fā)明突破了流媒體下載數(shù)據(jù)量的限制,大大減少了下載傳輸時(shí)延,提高了用戶的業(yè)務(wù)感受。
文檔編號(hào)H04L29/04GK1913444SQ200510090708
公開(kāi)日2007年2月14日 申請(qǐng)日期2005年8月11日 優(yōu)先權(quán)日2005年8月11日
發(fā)明者陳小平, 田邊 申請(qǐng)人:騰訊科技(深圳)有限公司