技術(shù)領(lǐng)域
本發(fā)明涉及智能移動設(shè)備應(yīng)用研究領(lǐng)域,尤其涉及移動互聯(lián)網(wǎng)環(huán)境下的流媒體傳輸及其應(yīng)用的相關(guān)技術(shù),音樂作為傳統(tǒng)流媒體的一種,本發(fā)明主要實現(xiàn)了一種邊播放邊下載音樂的技術(shù)。
背景技術(shù):
本發(fā)明基于Android系統(tǒng)實現(xiàn),由于Android系統(tǒng)對于網(wǎng)絡(luò)HTTP請求音樂流這塊的封裝,使得開發(fā)者受限,現(xiàn)有同類技術(shù)或產(chǎn)品或多或少存在著一些不足或缺陷,比如:
一,不支持已播放過的音樂不耗流量重復(fù)播放。對于移動設(shè)備的用戶而言,流量的使用是比較謹(jǐn)慎的,不同于PC等使用寬帶的固定設(shè)備,不需要考慮數(shù)據(jù)的流量。一般同類主流產(chǎn)品在實現(xiàn)在線音樂播放的時候,使用了系統(tǒng)原生的方法,沒有對音樂的數(shù)據(jù)進行保存,重復(fù)播放的時候只能重新連接網(wǎng)絡(luò)請求數(shù)據(jù),造成了流量的嚴(yán)重浪費。
二,不支持音樂文件的斷點下載保存。音樂播放的用戶場景是多變的,用戶不會按照理想情況播完一首音樂再到下一首,而是經(jīng)常有播放中途切換音樂的行為,同類產(chǎn)品方案中,鮮有針對該情況的功能。斷點下載的技術(shù)能夠記錄音樂文件的下載進度,在下一次訪問的時候可以根據(jù)斷點請求網(wǎng)絡(luò),不必重新開始,做到最大限度地利用流量而不浪費。
技術(shù)實現(xiàn)要素:
基于上述的背景,本發(fā)明主要解決了在線音樂重復(fù)播放不耗流量和音樂文件斷點下載的問題,是一套完整的邊播放邊下載音樂的技術(shù)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:主要應(yīng)用五大模塊來實現(xiàn),五大模塊為:音樂播放模塊、本地代理模塊、文件下載模塊、數(shù)據(jù)庫模塊、斷點處理模塊。
音樂播放模塊,主要負(fù)責(zé)音樂媒體流的播放以及網(wǎng)絡(luò)請求的發(fā)起,傳遞請求到本地代理模塊。
本地代理模塊,該項發(fā)明的核心技術(shù),為本地網(wǎng)絡(luò)請求的虛擬代理,專門負(fù)責(zé)音樂播放器的網(wǎng)絡(luò)請求和回寫,負(fù)責(zé)網(wǎng)絡(luò)請求的替換和數(shù)據(jù)的分發(fā),播放器的請求和遠(yuǎn)程服務(wù)器的數(shù)據(jù)返回都經(jīng)過本地代理處理。其中數(shù)據(jù)分發(fā)包含兩部分:一為分發(fā)數(shù)據(jù)到音樂播放模塊進行播放;二為分發(fā)數(shù)據(jù)到文件下載模塊,保存音頻數(shù)據(jù)到本地。
文件下載模塊,該模塊負(fù)責(zé)處理從本地代理傳來的音頻數(shù)據(jù),將網(wǎng)絡(luò)的數(shù)據(jù)轉(zhuǎn)換成本地的文件。
數(shù)據(jù)庫模塊,負(fù)責(zé)記錄處理過的音樂文件,以及保存未下載完成的音樂文件的地址以及斷點,保證文件斷點位置的正確。
斷點處理模塊,該模塊主要負(fù)責(zé)斷點的處理:監(jiān)測下載進度,在下載停止時獲取斷點;在播放曾經(jīng)訪問過的音樂的時候可以根據(jù)斷點請求網(wǎng)絡(luò),不必重新開始,將斷點和地址轉(zhuǎn)換成相應(yīng)的網(wǎng)絡(luò)請求。
與現(xiàn)有技術(shù)方案相比,本發(fā)明的有益效果是:克服了大多數(shù)技術(shù)方案中,存在的功能缺失問題,如音樂重復(fù)播放的流量問題、音樂的緩存問題以及音樂的斷點下載問題,做到真正意義上的邊播放邊下載,節(jié)省流量,提高性能和用戶體驗,應(yīng)用的適用范圍也更加的廣泛。
附圖說明
下面結(jié)合附圖和處理流程對本發(fā)明進一步說明。
圖1為本發(fā)明邊播邊下載音樂技術(shù)的結(jié)構(gòu)示意圖。
具體處理方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚完整,下面將結(jié)合本發(fā)明處理流程及附圖,對本發(fā)明中的技術(shù)方案進一步詳細(xì)地說明。此處描述的具體實施僅用以解釋本發(fā)明,但不作為對本發(fā)明的限定。
邊播放邊下載音樂的技術(shù)包括:本地代理模塊、音樂播放模塊、文件下載模塊、數(shù)據(jù)庫模塊、斷點處理模塊。該技術(shù)的主要處理流程如下。
(1)本地網(wǎng)絡(luò)請求發(fā)起部分
播放器發(fā)送本地的網(wǎng)絡(luò)請求,斷點處理模塊接收播放器發(fā)送的請求,同步數(shù)據(jù)庫確定是否需要向網(wǎng)絡(luò)請求數(shù)據(jù),如不需要則通知數(shù)據(jù)庫把本地音樂文件地址返回給音樂播放器,若是不完整的文件則重新處理生成新的網(wǎng)絡(luò)請求。
(2)本地代理處理部分
本地代理主要負(fù)責(zé)兩件事:一是解析本地發(fā)來的網(wǎng)絡(luò)請求并重新向互聯(lián)網(wǎng)發(fā)送請求;二是接收互聯(lián)網(wǎng)服務(wù)器回傳的數(shù)據(jù)并在本地分發(fā)。
(3)本地文件生成及數(shù)據(jù)庫處理部分
文件下載模塊接收本地代理分發(fā)的數(shù)據(jù),然后將數(shù)據(jù)保存在本地,并更新數(shù)據(jù)庫。碰到文件數(shù)據(jù)流斷開情況的時候記錄斷點,發(fā)送到數(shù)據(jù)庫保存。數(shù)據(jù)庫負(fù)責(zé)數(shù)據(jù)的儲存。