專利名稱:多媒體彩顯快速推送的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)通訊和移動(dòng)數(shù)據(jù)技術(shù)領(lǐng)域,主要是一種多媒體彩顯快速推送的方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,人們越來越習(xí)慣于通過互聯(lián)網(wǎng)彰顯自己的個(gè)性,QQ簽名、MSN簽名、QQ秀等均得到了廣泛應(yīng)用,并逐漸向其他領(lǐng)域延伸。人們希望在手機(jī)上也同樣能夠展示自己的個(gè)性化信息。通話彩顯業(yè)務(wù)是一種新興的電信增值業(yè)務(wù),該業(yè)務(wù)可以讓企業(yè)或個(gè)人用戶自行設(shè)置一個(gè)/ 一組彩顯信息(文字、圖片或視頻),當(dāng)產(chǎn)生呼叫時(shí),該信息將自動(dòng)推送到對方的手機(jī)上達(dá)到“彩顯”的效果。用戶A呼叫用戶B時(shí),通話彩顯系統(tǒng)要求即時(shí)從交換網(wǎng)絡(luò)中檢測到雙方的呼叫,并從彩顯規(guī)則庫中找到用戶A和用戶B相關(guān)的彩顯規(guī)則,根據(jù)規(guī)則確認(rèn)彩顯內(nèi)容和彩顯的形式,再將彩顯內(nèi)容推送給對方。根據(jù)彩顯內(nèi)容,可以分為文本彩顯和多媒體彩顯。文本彩顯指的是通過短信、閃信、USSD方式進(jìn)行發(fā)送,在用戶手機(jī)上以文字形式顯示彩顯內(nèi)容。多媒體彩顯指的是在用戶手機(jī)上以圖片、視頻、聲音、文字等多種形式展現(xiàn)出來的彩顯內(nèi)容。對于非智能手機(jī),沒有提供底層呼叫事件通知API接口,普通客戶端軟件無法及時(shí)獲取呼叫事件。在彩顯應(yīng)用中,還沒有找到一種方法實(shí)現(xiàn)激活客戶端軟件運(yùn)行,完成圖片彩顯的主動(dòng)推送和顯示。所以對于非智能手機(jī),現(xiàn)在只能接收短信、USSD等文字的彩顯信肩、ο由于圖片、視頻相比于文字信息數(shù)據(jù)量更大,導(dǎo)致傳輸效率更低,而且一般有10 秒以上左右的時(shí)延,無法即時(shí)下載顯示,這些問題阻礙了多媒體圖片在彩顯中的進(jìn)一步應(yīng)用。現(xiàn)有多媒體信息(MMS彩信)技術(shù)存在著一定的限制;彩信(MMQ發(fā)送帶有一定的時(shí)延;彩信接收之后無法自動(dòng)顯示,需要用戶點(diǎn)擊菜單項(xiàng)才能打開顯示閱讀;同時(shí)彩信最大不能超過64K的限制。由于這些限制使得彩信(MMQ無法在通話彩顯業(yè)務(wù)中得到應(yīng)用?;谏鲜龅姆侵悄苁謾C(jī)無法顯示圖片、智能手機(jī)圖片下載緩慢無法即時(shí)顯示、彩信無法自動(dòng)顯示等問題。要使多媒體彩顯在通話彩顯中得到更多的應(yīng)用,需要尋找一種更加有效的多媒體圖片主動(dòng)快速推送方法。
發(fā)明內(nèi)容
本發(fā)明的目的正是克服上述技術(shù)的不足,而提供一種讓圖片和視頻達(dá)到與文字信息同樣的傳輸效率、同樣的終端適用能力的多媒體彩顯快速推送的方法,是一種基于圖片等多媒體彩顯文件即時(shí)推送、快速下載、立即顯示的實(shí)現(xiàn)方法。本發(fā)明解決其技術(shù)問題采用的技術(shù)方案這種多媒體彩顯快速推送的方法,多媒體彩顯快速推送由多媒體彩顯的預(yù)處理和多媒體彩顯的顯示這兩個(gè)過程來完成;
(一)、多媒體彩顯的預(yù)處理彩顯用戶通過WEB方式設(shè)置一個(gè)多媒體彩顯,ES_BSM 服務(wù)器生成ES_BSM短信,下發(fā)給用戶手機(jī),完成多媒體彩顯的主動(dòng)推送過程;步驟SOOl 用戶手機(jī)根據(jù)WAPPUSH、WAP安裝多媒體彩顯MIDlet客戶端應(yīng)用程序; 程序根據(jù)設(shè)置的要求;把ESMLPushMIDlet、ES_BSM接入連接事件注冊到接入連接觸發(fā)器, 要求手機(jī)檢測到ES_BSM接入連接事件時(shí)激活和運(yùn)行ESMLPushMIDlet應(yīng)用程序;步驟S002 彩顯用戶登錄到WEB服務(wù)器,設(shè)置一個(gè)多媒體彩顯,選擇接收這一個(gè)多媒體彩顯的用戶群;步驟S003 =WEB服務(wù)器調(diào)用ESML服務(wù)器,對彩顯文件進(jìn)行分拆、壓縮生成ESML多媒體文件;步驟S004:TOB服務(wù)器對于要求接收的用戶群并且已經(jīng)安裝多媒體彩顯MIDlet客戶端應(yīng)用程序的用戶生成ES_BSM任務(wù),同時(shí)把ES_BSM任務(wù)提交給ES_BSM服務(wù)器;步驟S005 :ES_BSM管理器根據(jù)TOB服務(wù)器提交的任務(wù),生成ES_BSM發(fā)送請求;通過短信網(wǎng)關(guān)、短信中心向用戶發(fā)送ES_BSM短信;步驟S006 用戶手機(jī)接收到ES_BSM短信之后,激活客戶端運(yùn)行;步驟S007 =MIDlet客戶端根據(jù)ES_BSM信息下載請求,完成ESML多媒體文件預(yù)下載;(二)、多媒體彩顯的顯示指彩顯用戶呼叫用戶B手機(jī)時(shí),由呼叫檢測服務(wù)器檢測到用戶的呼叫;呼叫檢測服務(wù)器通過ES_BSM短信激活客戶端運(yùn)行,完成在用戶B手機(jī)上顯示彩顯用戶設(shè)置的ESML多媒體文件的過程;步驟S301 彩顯用戶呼叫用戶B手機(jī);步驟S302 呼叫檢測服務(wù)器通過交換機(jī)網(wǎng)絡(luò)實(shí)時(shí)檢測到彩顯用戶呼叫用戶B手機(jī)的信息;步驟S303 呼叫檢測服務(wù)器根據(jù)檢測到的呼叫信息,判斷出需要在用戶B手機(jī)上立即顯示出彩顯用戶設(shè)置的彩顯內(nèi)容,生成一個(gè)顯示ESML多媒體文件的ES_BSM短信發(fā)送任務(wù);步驟S304 :ES_BSM服務(wù)器根據(jù)發(fā)送任務(wù),生成ES_BSM消息并通過短信中心、短信網(wǎng)關(guān)給用戶B手機(jī)發(fā)送ES_BSM短信;步驟S305 用戶B手機(jī)接收到ES_BSM短信之后,激活客戶端運(yùn)行;如果多媒體彩顯已經(jīng)預(yù)下載,進(jìn)入操作步驟S307 ;如果多媒體彩顯還沒有預(yù)下載,需要一邊下載一邊顯示,則進(jìn)入操作步驟S306 ;步驟S306 用戶B客戶端應(yīng)用程序通過ESML服務(wù)器快速下載ESML多媒體文件,實(shí)現(xiàn)一邊下載一邊顯示,下載完成之后,進(jìn)入操作步驟S308 ;步驟S307 立即顯示多媒體彩顯內(nèi)容,進(jìn)入S308操作;步驟S308 等待用戶B手機(jī)按鍵退出。作為優(yōu)選,所述的一個(gè)多媒體彩顯內(nèi)容組成一個(gè)ESML媒體文件,一個(gè)ESML媒體文件是由多個(gè)文件組成,包含一個(gè)ESML標(biāo)記文件、0個(gè)或多個(gè)文本文件、0個(gè)或多個(gè)圖片文件、 0個(gè)或多個(gè)視頻文件;ESML標(biāo)記文件通過ESML標(biāo)記來定義多媒彩顯屏幕框架,詳細(xì)定義出文本內(nèi)容、圖片內(nèi)容、視頻內(nèi)容,以及它們的顯示大小、位置、下載前后順序、所引用的文件 URI信息;將圖片內(nèi)容的大小為X*Y的圖片分拆成Ν*Ν個(gè)子圖片,以mImg[X/N] [Υ/Ν] [N] [N] 表示分拆后子圖片矩陣,mLiig[X/N] [Y/N] [i] [j]表示子圖片矩陣中第i行、j列的子圖片數(shù)據(jù),其子圖片大小是(X/n)*(Y/n)像素,寬縮小η倍,高縮小η倍;oLngDG [Y]表示原圖的數(shù)據(jù),子圖片矩陣的(i,j)子圖片在(X,y)位置上像素點(diǎn)數(shù)值計(jì)算方法為mlmg[i, j] [χ] [y] =oImg[x*n+i][y*n+j]。作為優(yōu)選,所述的ES_BSM短信激活客戶端運(yùn)行步驟如下1)多媒體彩顯MIDlet客戶端應(yīng)用程序以靜態(tài)方式把ES_BSM接入連接事件注冊到接入連接觸發(fā)器;a)通過 JAD 文件中增加 MIDlet-Push-I :sms://:9901, ESMLPushMIDlet,注冊了 9901端口和短信接入類型作為啟動(dòng)ESMLPushMIDlet的接入連接事件;b)Android手機(jī)通過intent-filter注冊9901端口號和短信接入類型作為啟動(dòng) ESMLPushMIDlet的接入連接事件;2)用戶手機(jī)收到ES_BSM短信之后;根據(jù)ES_BSM中TP-UDHI、TP-PID、WBXML消息內(nèi)容,產(chǎn)生ES_BSM接入連接事件;3)手機(jī)應(yīng)用管理系統(tǒng)監(jiān)視到ES_BSM接入連接事件,通知手機(jī)的接入連接觸發(fā)器;4)接入連接觸發(fā)器根據(jù)上面安裝ESMLPushMIDlet時(shí)靜態(tài)注冊要求,啟動(dòng)觸發(fā)器中ES_BSM接入連接事件對應(yīng)的ESMLPushMIDlet應(yīng)用程序;5)ESMLPushMIDlet 應(yīng)用程序通過 sms. ESMLReceive, SMS. ESMLConnect 方法完成 ES_BSM短信接收和分析。作為優(yōu)選,所述的ESML多媒體文件預(yù)下載步驟如下1)步驟S201 訪問ESML服務(wù)器,獲取下載參數(shù),ESML服務(wù)器通過手機(jī)型號、屏幕大小,當(dāng)前ESML多媒體文件大小來指定本次預(yù)下載的緩沖區(qū);2)步驟S202 下載并分析ESML標(biāo)記文件,分拆并生成下載子任務(wù),建立用于下載的緩沖區(qū);3)步驟S203 讀取一個(gè)下載子任務(wù),根據(jù)優(yōu)先級從子任務(wù)隊(duì)列中讀取一個(gè)待下載子任務(wù);如果任務(wù)是文本文件,則進(jìn)入S204步驟,如果任務(wù)是視頻文件,則進(jìn)入S205操作, 如果任務(wù)是圖片文件,則進(jìn)入S206操作;4)步驟S204 根據(jù)任務(wù)下載文本內(nèi)容,寫到顯示緩沖區(qū)中,進(jìn)入S208操作步驟;5)步驟S205 對于視頻文件進(jìn)行分析,以15幀為視頻下載片段進(jìn)行下載;下載成功之后把數(shù)據(jù)放到顯示緩沖區(qū)中,進(jìn)入S208操作步驟;6)步驟S206 下載圖片數(shù)據(jù),完成后進(jìn)入S207操作步驟;7)步驟S207 下載得到子圖片的數(shù)據(jù)填充到圖片緩沖區(qū),完成之后進(jìn)入S208步驟操作;8)步驟S208 判斷是否所有下載子任務(wù)都已經(jīng)下載完成; 如果沒有下載完成,則返回到S204重新讀取下載子任務(wù),開始新的下載; 如果所有任務(wù)都下載完成,則進(jìn)入S209進(jìn)行結(jié)束操作;9)步驟S209 保存已經(jīng)成功下載的ESML多媒體文件,預(yù)下載結(jié)束。作為優(yōu)選,在步驟S305中,激活客戶端運(yùn)行過程如下1)多媒體彩顯MIDlet客戶端應(yīng)用程序以靜態(tài)方式把ES_BSM接入連接事件注冊到接入連接觸發(fā)器;2)用戶手機(jī)收到ES_BSM短信之后,根據(jù)ES_BSM中TP-UDHI、TP-PID、WBXML消息內(nèi)容,產(chǎn)生ES_BSM接入連接事件;
3)手機(jī)應(yīng)用管理系統(tǒng)監(jiān)視到ES_BSM接入連接事件,通知手機(jī)的接入連接觸發(fā)器;4)接入連接觸發(fā)器根據(jù)上面安裝ESMLPushMIDlet時(shí)靜態(tài)注冊要求,啟動(dòng)觸發(fā)器中ES_BSM接入連接事件對應(yīng)的ESMLPushMIDlet應(yīng)用程序;5)ESMLPushMIDlet 應(yīng)用程序通過 sms. ESMLReceive, SMS. ESMLConnect 方法完成 ES_BSM短信接收和分析;多媒體彩顯MIDlet客戶端應(yīng)用程序讀取ES_BSM信息,判斷本地是否已經(jīng)預(yù)下載此ESML多媒體文件,如果已經(jīng)預(yù)下載,則進(jìn)入S307步驟立即顯示,如果沒有預(yù)下載,則進(jìn)入 S306步驟進(jìn)行邊下載邊顯示。作為優(yōu)選,在步驟S306中,ESML多媒體文件下載并顯示的流程說明如下1)步驟S401 訪問ESML服務(wù)器,獲取下載參數(shù),ESML服務(wù)器通過手機(jī)型號、屏幕大小,當(dāng)前ESML多媒體文件大小來指定本次下載參數(shù);2)步驟S402 下載并分析ESML標(biāo)記文件,分拆并生成下載子任務(wù),建立用于下載的緩沖區(qū)和連接池,創(chuàng)建下載線程;3)步驟S403 新創(chuàng)建的線程根據(jù)優(yōu)先級從子任務(wù)隊(duì)列中讀取一個(gè)待下載子任務(wù); 如果任務(wù)是文本文件,則進(jìn)入S404步驟,如果任務(wù)是視頻文件,則進(jìn)入S405操作,如果任務(wù)是圖片文件,則進(jìn)入S406操作;4)步驟S404 根據(jù)任務(wù)下載文本內(nèi)容,寫到顯示緩沖區(qū)中;進(jìn)入S410操作步驟;5)步驟S405 對于視頻文件進(jìn)行分析,以15幀為視頻下載片段進(jìn)行下載;下載成功之后把數(shù)據(jù)放到顯示緩沖區(qū)中,進(jìn)入S410操作步驟;6)步驟S406 下載圖片數(shù)據(jù),完成后進(jìn)入S407操作步驟;7)步驟S407 下載得到子圖片的數(shù)據(jù)填充到圖片緩沖區(qū);8)步驟S408 判斷原圖片緩沖區(qū)是否為空,原圖片緩沖區(qū)為空表示圖片緩沖區(qū)所有數(shù)據(jù)無效;上面下載的子圖片數(shù)據(jù)只能填充一部分(a+i*m,b+j*m),a、b表示子圖片的矩陣編號,i、j表示子圖中某個(gè)像素點(diǎn)的位置,m是2表示共由2 個(gè)子圖組成;則j或i每增加一個(gè),緩沖數(shù)據(jù)是增加2個(gè),中間有1個(gè)像素點(diǎn)數(shù)據(jù)是無效;如果是m是3,則中間有兩個(gè)像素點(diǎn)是無效,進(jìn)入S409進(jìn)行操作;如果原圖不為空,則直接進(jìn)入S410進(jìn)行操作;9)步驟S409 雙向線性填充法填充無效的部分,使所有數(shù)據(jù)變成有效,主線程可以正確顯示出原圖來;10)步驟S410 通知主線程,表示一個(gè)下載子任務(wù)已經(jīng)完成,通知內(nèi)容中包括下載子任務(wù)的編號、下載時(shí)長信息;11)步驟S411 判斷是否所有下載子任務(wù)都已經(jīng)下載完成; 如果沒有下載完成,則返回到S403重新讀取下載子任務(wù),開始新的下載; 如果所有任務(wù)都下載完成,則進(jìn)入S412進(jìn)行結(jié)束操作;12)步驟S412 下載完成,退出下載并顯示的流程;13)步驟S413 等待下載線程通知;14)步驟S414 刷新屏幕,完成之后進(jìn)入S233操作;15)步驟S415 判斷所有子任務(wù)下載完成,如果下載完成,則進(jìn)入S212進(jìn)行結(jié)束退出操作;如果沒有完成,則返回S413繼續(xù)等待。作為優(yōu)選,在步驟S207和步驟S407中數(shù)據(jù)填充方法如下在ESML服務(wù)器分割成n*n子圖矩陣,根據(jù)屏幕需要下載m*m子圖片矩陣;當(dāng)前下載子圖ID是[脅b],則填充到圖片緩沖區(qū)處理邏輯為ImageBuff [a+i*m, b+j*m] = mlmage [i*j],即 mlmage [i*j]的數(shù)據(jù)填寫到圖片緩沖區(qū)中ImageBuff (a+i*m,b+j*m)位置上的數(shù)值;ImageBuff是圖片緩沖區(qū), mlmage表示剛下載的圖片數(shù)據(jù)。作為優(yōu)選,在步驟S409中雙向線性填充法中,Z(x,y)表無效像素點(diǎn),其中χ表示 X方向坐標(biāo),y表示Y方向的坐標(biāo)值,同樣A (a, b),a表示X方向坐標(biāo)值,b表示Y方向的坐標(biāo)值,A、B、C、D表示對應(yīng)像素點(diǎn)數(shù)據(jù),在(x,y)像素點(diǎn)上Z數(shù)據(jù)通過如下方法進(jìn)行計(jì)算;Zl(x,y) ^ A(a, b) + (B"A)*(x"a)
c~aZ2(X)y) ^ A (a, b) + (C'A)Z3(x,y)
c_aZ4(x,y) = B(c, b) + _,)
r Z1+Z2+Z3+Z4Z (χ, y)=---作為優(yōu)選,在步驟S414中,首先對于上次刷新時(shí)間進(jìn)行判斷,如果小于200ms先不刷新屏幕布局,啟動(dòng)200ms的定時(shí)器;要求200ms之后進(jìn)行刷新;只刷新指定區(qū)域,根據(jù)下載任務(wù)ID、ESML標(biāo)記文件中信息計(jì)算本次任務(wù)下載影響屏幕區(qū)域;直接把更新緩沖區(qū)數(shù)據(jù)復(fù)制到指定的屏幕區(qū)域;對指定區(qū)域進(jìn)行顯示刷新的請求。本發(fā)明有益的效果是本方法定義了 ES_BSM短信、ESML媒體語言方法,一舉解決了終端普適性和傳輸時(shí)延的兩大問題,可以達(dá)到與文字信息類似的效果。1、更強(qiáng)的終端適用能力由于利用ES_BSM短信能夠觸發(fā)非智能手機(jī)上客戶端,主動(dòng)發(fā)起圖片推送,更多的手機(jī)(非智能手機(jī))都能實(shí)現(xiàn)圖片主動(dòng)推送和主動(dòng)顯示;滿足彩顯業(yè)務(wù)流程的要求。2、更好的傳輸方式、用戶體驗(yàn)ESML媒體格式及雙方協(xié)商機(jī)制下載,可以完成圖片快速下載、根據(jù)手機(jī)實(shí)際情況適當(dāng)減小下載流量和時(shí)延?;具_(dá)到與文字信息同樣無延時(shí)的顯示效果。
圖1是多媒體彩顯預(yù)處理示意圖;圖2是ESML多媒體文件介紹示意圖;圖3是圖片分拆示意圖;圖4是ES_BSM短信介紹示意圖;圖5是ESML多媒體文件預(yù)下載說明示意圖;圖6是多媒體彩顯的顯示說明示意圖;圖7是ESML多媒體文件下載并顯示示意圖;圖8是雙向線性填充法示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明本發(fā)明所述的這種多媒體彩顯快速推送的方法主要分成兩個(gè)過程來完成 多媒體彩顯的預(yù)處理 多媒體彩顯的顯示多媒體彩顯的預(yù)處理彩顯用戶通過TOB方式設(shè)置一個(gè)多媒體彩顯,ES_BSM服務(wù)器生成ES_BSM短信,下發(fā)給用戶手機(jī),完成多媒體彩顯的主動(dòng)推送過程。具體如附件圖1多媒體彩顯預(yù)處理說明步驟SOOl 用戶手機(jī)根據(jù)WAPPUSH、WAP安裝多媒體彩顯MIDlet客戶端應(yīng)用程序; 程序根據(jù)設(shè)置的要求;把ESMLPushMIDlet、ES_BSM接入連接事件注冊到接入連接觸發(fā)器, 要求手機(jī)檢測到ES_BSM接入連接事件時(shí)激活和運(yùn)行ESMLPushMIDlet應(yīng)用程序。1. ESMLPushMIDlet 安裝在手機(jī)客戶端上,完成多媒體彩顯下載和顯示的客戶端應(yīng)用程序。2. ES_BSM 接入連接事件ES_BSM 指的是帶有 TP-UDHI、TP-ID、XMLWB、Η-Port 關(guān)鍵信息的短信;用戶手機(jī)在接收到ES_BSM短信之后,產(chǎn)生端口為9901的短信接入連接事件。3.接入連接觸發(fā)器指手機(jī)應(yīng)用管理系統(tǒng)提供的一個(gè)通用連接框架,它自動(dòng)監(jiān)聽、跟蹤已注冊的接入連接事件,在檢測到相應(yīng)的接入連接事件之后,自動(dòng)激活相對應(yīng)的應(yīng)用程序。步驟S002 彩顯用戶登錄到TOB服務(wù)器,設(shè)置一個(gè)多媒體彩顯;選擇接收這一個(gè)多媒體彩顯的用戶群。步驟S003 =WEB服務(wù)器調(diào)用ESML服務(wù)器,對彩顯文件進(jìn)行分拆、壓縮生成ESML多媒體文件。一個(gè)多媒體彩顯內(nèi)容組成一個(gè)ESML多媒體文件。一個(gè)ESML多媒體文件是由多個(gè)文件組成(并非是一個(gè)文件,它是一個(gè)文件包形式)。主要包含一個(gè)ESML標(biāo)記文件、0個(gè)或多個(gè)文本文件、0個(gè)或多個(gè)圖片文件、0個(gè)或多個(gè)視頻文件組成。具體如附圖2 :ESML多媒體文件介紹所示,現(xiàn)說明如下1、ESML標(biāo)記文件通過ESML標(biāo)記來定義多媒彩顯屏幕框架,詳細(xì)定義出文本內(nèi)容、圖片內(nèi)容、視頻內(nèi)容,以及它們的顯示大小、位置、下載前后順序、所引用的文件URI信息。文件內(nèi)容主要分成兩個(gè)部分一個(gè)是head標(biāo)記,另一個(gè)是body標(biāo)記。^Head標(biāo)記,組成Head部分;通過title標(biāo)記來定義標(biāo)題;通過layout標(biāo)記來定義屏幕顯示的框架,屏幕分成幾個(gè)部分顯示等;^Body標(biāo)記,組成Body部分,明確顯示的內(nèi)容,通過txt定義文本內(nèi)容信息、通過 img定義圖片內(nèi)容信息、通過video定義視頻內(nèi)容;2、文本內(nèi)容由txt標(biāo)記進(jìn)行詳細(xì)定義,txt標(biāo)記帶有文本內(nèi)容相關(guān)屬性;1. src定義內(nèi)容來源,內(nèi)容可以是通過另一個(gè)文本文件來指定;如果src是空,表示內(nèi)容是通過〈txtX/txt〉之間進(jìn)行指定;2. color 定義顏色;3. font 定義字體。3、圖片內(nèi)容由img進(jìn)行詳細(xì)定義,img中帶有通過src來定義圖片文件鏈接位置,通過w和h表示原始圖片寬和高;count屬性圖片分拆說明;
不同手機(jī)屏幕大小差別很大,在小屏幕手機(jī)中,對于大尺寸圖片無法正確的顯示, 高分辨率圖片品質(zhì)也無法有效的體現(xiàn);同時(shí)由于圖片太大引起內(nèi)存溢出、下載時(shí)間超長等不良后果。有必要對圖片進(jìn)行分割,把一個(gè)圖片分拆成n*n個(gè)子圖片,要求每一個(gè)小圖片都和大圖片內(nèi)容基本上一樣,只不過它的分辨率低一些;這幾個(gè)圖片之間有一定移位,幾個(gè)圖片填充在一起可以實(shí)現(xiàn)和原來圖片一樣品質(zhì)效果的圖片。這樣,如果手機(jī)上顯示圖片區(qū)域剛好是原圖片的n*n分之1時(shí),只要下載其中一個(gè)圖片的數(shù)據(jù),可以正常顯示了。如果最后顯示效果要和原來一模一樣時(shí),一方面可以采用多個(gè)線程進(jìn)行下載,以小圖片為單位進(jìn)行獨(dú)立下載,加快下載。另一方面只要下載其中1個(gè)圖片,對于其它未下載數(shù)據(jù)采用雙向線性填充法來完成有效化處理,就可以顯示整個(gè)圖片,只是顯示的效果相對模糊一些。隨著文件進(jìn)一步下載,圖片的顯示就會越來越清晰。根據(jù)圖片寬、高,以普通手機(jī)屏幕大小(171*108)為9個(gè)基準(zhǔn)點(diǎn),計(jì)算出最后分割成小圖片的個(gè)數(shù);如果一個(gè)原圖大小是171*108,則把原圖分割成9子圖片;如果原圖大小是342*216,分割成36子小圖片。分拆之后,每個(gè)子圖片為(X/N*Y/N)點(diǎn)像素;原圖上以N*N像素區(qū)域?yàn)橐粋€(gè)分拆單位,分拆單位上每一個(gè)像素點(diǎn)分拆到不同子圖片上對應(yīng)的像素。如附圖3圖片分拆所示,以原圖大小為171*108,分拆成3*3子圖片矩陣為例進(jìn)行示意說明。大圖中每一格表示原圖的一個(gè)像素點(diǎn),每一個(gè)3*3圖片區(qū)域?yàn)橐粋€(gè)拆分單位;每一個(gè)分析單位上的像素點(diǎn)值賦給相應(yīng)矩陣上對應(yīng)子圖片。下面以原圖片大小為X*Y;分割成N*N個(gè)子圖片,以mImg[X/N][Y/N][N][N]表示分割后子圖片矩陣進(jìn)行說明。
mImg[X/N] [Y/N] [i] [j]表示子圖片矩陣中第i行;j列的子圖片數(shù)據(jù)。其子圖片大小是(X/n)*(Y/n)像素,寬度縮小η倍,高縮小η倍。
olmg[X] [Y]表示原圖的數(shù)據(jù)。 子圖片矩陣的(i,j)子圖片在(x,y)位置上像素點(diǎn)數(shù)值計(jì)算方法為mLiig[i,j] [x][y] = oImg[x*n+i][y*n+j]。4、視頻內(nèi)容1.對于視頻等媒體,在文件生成和壓縮處理時(shí),根據(jù)常用手機(jī)屏幕大小、視頻編碼,預(yù)生成不同尺寸、不同編碼視頻文件;現(xiàn)主要生成以下幾種類型的視頻文件;今H. 264 480*320
今H. 263 360*320今H. 264 320*240今MPEG4 720*480MPEG4 480*360令MPEG4 176*144今MPEG4 320*240々Η.263 176*1442.客戶端下載和顯示,根據(jù)現(xiàn)有網(wǎng)絡(luò)帶寬、手機(jī)屏幕大小、手機(jī)支持編碼格式、CPU 性能選擇一個(gè)合適類型的視頻文件。
12
3.采用準(zhǔn)流媒體方式,以15幀為一個(gè)單位進(jìn)行分時(shí)分段下載;以實(shí)現(xiàn)邊下載邊播放。步驟S004:TOB服務(wù)器對于要求接收的用戶群并且已經(jīng)安裝多媒體彩顯MIDlet客戶端應(yīng)用程序的用戶生成ES_BSM任務(wù);同時(shí)把EB_BSM任務(wù)提交給ES_BSM服務(wù)器。如果此用戶未安裝多媒體彩顯MIDlet客戶端應(yīng)用程序,則下發(fā)一條WAPPUSH消息,提示用戶安裝。用戶下載并成功安裝多媒體彩顯MIDlet客戶端應(yīng)用程序之后,自動(dòng)下載ESML多媒體文件并進(jìn)行相應(yīng)的提示(這種情況下是不需要通過ES_BSM短信進(jìn)行觸發(fā))。如果此用戶已經(jīng)安裝多媒體彩顯MIDlet客戶端應(yīng)用程序,則生成發(fā)送ES_BSM任務(wù),提交給ES_BSM管理器。步驟S005 :ES_BSM管理器根據(jù)TOB服務(wù)器提交的任務(wù),生成ES_BSM發(fā)送請求;通過短信網(wǎng)關(guān)、短信中心等向用戶發(fā)送ES_BSM短信。根據(jù)GSM9. 2. 3. 24規(guī)范,ES_BSM分4個(gè)部分。如附圖4 :ES_BSM短信介紹所示, (圖中IB表示1個(gè)字節(jié),2B表示2個(gè)字節(jié))· GSM協(xié)議類型■ TP-UDHI 表示TP用戶數(shù)據(jù)中是否帶有TP-UDH包頭標(biāo)志。TP-USERData Head Indicator?!?TP-PID TP-Protocol-Identifier, TP 協(xié)議編號;· TP-DCS 短信內(nèi)容編碼,TP-Data Code Scheme,它分別為 7_bit 編碼、8_bit 編碼和UCS2編碼。7-bit編碼用于發(fā)送普通的ASCII字符,8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,UCS2編碼用于發(fā)送Unicode字符?!?WBXML 壓縮 XML■長度,1個(gè)字節(jié),用于表示本W(wǎng)BXML數(shù)據(jù)的長度;■類型1個(gè)字節(jié),表示本W(wǎng)BXML的類型;■長度1個(gè)字節(jié),用于表示后面部分長度;■ H-PORT 表示 Handset Destination Port,手機(jī)接收短信的端口編號;■ 0-P0RT 表示源端口號 短信內(nèi)容■操作類型,2個(gè)字節(jié)表示;■操作參數(shù) 參數(shù)標(biāo)記1個(gè)字節(jié)表示; 參數(shù)長度1個(gè)字節(jié)表示這 參數(shù)內(nèi)容η個(gè)字節(jié),具體的參數(shù)內(nèi)容。ES_BSM服務(wù)器針對每一個(gè)用戶生成一個(gè)ES_BSM短信,EB_BSM短信內(nèi)容具體設(shè)置如下· GSM協(xié)議類型■ TP-UDHI 設(shè)置為 OxOl ;■ TP-PID 設(shè)置為 0x01 ;· TP-DCS =0x04 ;· WBXML 壓縮 XML
■長度,設(shè)置為0X06;■類型0x05 ;■長度0x04■ H-PORT 手機(jī)端安裝媒體彩顯MIDlet客戶端應(yīng)用程序時(shí)生成端口資源,采用 9901 ;■ O-PORT 0X0000 短信內(nèi)容■操作類型0x01表示主動(dòng)推送;■參數(shù) 1,標(biāo)記為0,表示簽名用戶的號碼;長度為χ 后面帶手機(jī)號碼的具體長度;參數(shù)內(nèi)容為手機(jī)號碼;■參數(shù) 2,標(biāo)記為4 表示本次ESML文件個(gè)數(shù);長度為χ 后面帶手機(jī)號碼的具體長度;參數(shù)內(nèi)容文件個(gè)數(shù);■參數(shù) 3,標(biāo)記為8,表示ESML多媒體文件ID ;長度為χ:長度;參數(shù)內(nèi)容表示需要預(yù)下載的ESML多媒體文件編號;■參數(shù) 4,標(biāo)記為9,表示ESML多媒體文件URI ;長度為χ 長度;參數(shù)內(nèi)容ESML多媒體文件URI具體地址;注參數(shù)3和參數(shù)4根據(jù)參數(shù)2定義它們的重復(fù)出現(xiàn),一次激活下載多個(gè)ESML多媒體文件。步驟S006 用戶手機(jī)接收到ES_BSM短信之后,激活客戶端運(yùn)行。ES_BSM激活運(yùn)行說明如下。1)多媒體彩顯MIDlet客戶端應(yīng)用程序以靜態(tài)方式把啟動(dòng)事件(ES_BSM接入連接事件)注冊到接入連接觸發(fā)器;a)通過 JAD 文件中增加 MIDlet-Push-I :sms://:9901, ESMLPushMIDlet,注冊了 9901端口和短信接入類型作為啟動(dòng)ESMLPushMIDlet的接入連接事件。b)Android手機(jī)通過intent-filter注冊9901端口號和短信接入類型作為啟動(dòng) ESMLPushMIDlet的接入連接事件,如下所示〈receiver android:name=".ESMLPushMIDlet"> <intent-fllter>
〈action android:name=Mandroid.intent.action.DATA_SMS_RECEIVEDM /> 〈data android:scheme="sms" /> <data android:port="9901" /> </intent-filter> 〈/receiver〉;2)用戶手機(jī)收到ES_BSM短信之后;根據(jù)ES_BSM中TP-UDHI、TP-PID、WBXML消息內(nèi)容,產(chǎn)生ES_BSM接入連接事件;3)手機(jī)應(yīng)用管理系統(tǒng)監(jiān)視到ES_BSM接入連接事件;通知手機(jī)的接入連接觸發(fā)器;;4)接入連接觸發(fā)器根據(jù)上面安裝ESMLPushMIDlet時(shí)靜態(tài)注冊要求,啟動(dòng)觸發(fā)器中ES_BSM接入連接事件對應(yīng)的ESMLPushMIDlet應(yīng)用程序;5)ESMLPushMIDlet 應(yīng)用程序通過 sms. ESMLReceive, SMS. ESMLConnect 等方法完成ES_BSM短信接收和分析。步驟S007 =MIDlet客戶端根據(jù)ES_BSM信息(上面介紹EB_BSM短信中參數(shù)1、參數(shù)2、參數(shù)3、參數(shù)4)下載請求,完成ESML多媒體文件的預(yù)下載。MIDlet客戶端通過ESML服務(wù)器指定下載參數(shù),完成ESML媒體文件的預(yù)下載。如附圖5 =ESML多媒體文件預(yù)下載說明所示,流程說明如下1.步驟S201 訪問ESML服務(wù)器,獲取下載參數(shù)。ESML服務(wù)器通過手機(jī)型號、屏幕大小,當(dāng)前ESML多媒體文件大小來指定本次預(yù)下載的緩沖區(qū);2.步驟S202 下載并分析ESML標(biāo)記文件,分拆并生成下載子任務(wù)。建立用于下載的緩沖區(qū);。 下載ESML標(biāo)記文件,根據(jù)文件指定屏幕布局、ESML標(biāo)記文件中指定媒體內(nèi)容 (文本內(nèi)容、圖片內(nèi)容、視頻內(nèi)容)生成下載子任務(wù); 圖片內(nèi)容;由ESML服務(wù)器根據(jù)當(dāng)前手機(jī)屏幕大小、分辨率、移動(dòng)網(wǎng)絡(luò)帶寬、時(shí)延限制等;計(jì)算出子圖片個(gè)數(shù),子圖片id、下載次序。通知客戶端進(jìn)行下載。是由img標(biāo)記中 downcount禾口 down id兩個(gè)屬性指示。Downcount是m*m,表示本次需要下載的子圖矩陣;downed [m] [m]表示本次下載子圖片的矩陣,mlmge[n] [η]表示原圖片矩陣。根據(jù)Downcount下需要下載的子圖片的矩陣如下downid[i] [j] = mlmage[i*n/m] [j*n/m]。 對于流媒體文件,由于服務(wù)器根據(jù)手機(jī)屏幕大小、分辨率、移動(dòng)網(wǎng)絡(luò)帶寬等要求,提供一個(gè)合適大小、編碼類型的視頻文件;提供手機(jī)客戶端進(jìn)行下載。3.步驟S203 讀取一個(gè)下載子任務(wù),根據(jù)優(yōu)先級從子任務(wù)隊(duì)列中讀取一個(gè)待下載子任務(wù);如果任務(wù)是文本文件,則進(jìn)入S204步驟,如果任務(wù)是視頻文件,則進(jìn)入S205操作, 如果任務(wù)是圖片文件,則進(jìn)入S206操作。4.步驟S204 根據(jù)任務(wù)下載文本內(nèi)容,寫到顯示緩沖區(qū)中;進(jìn)入S208操作步驟。5.步驟S205 對于視頻文件進(jìn)行分析,以15幀為視頻下載片段進(jìn)行下載;下載成功之后把數(shù)據(jù)放到顯示緩沖區(qū)中。進(jìn)入S208操作步驟。
6.步驟S206 下載圖片數(shù)據(jù),完成后進(jìn)入S207操作步驟。7.步驟S207 下載得到子圖片的數(shù)據(jù)填充到圖片緩沖區(qū)。完成之后進(jìn)入S208步驟操作。數(shù)據(jù)填充方法如下在ESML服務(wù)器分割成n*n子圖矩陣;根據(jù)屏幕需要下載m*m子圖片矩陣;當(dāng)前下載子圖ID是[脅b],則填充到圖片緩沖區(qū)處理邏輯為ImageBuff [a+i*m, b+j*m] = mlmage [i*j]。即mlmage[i*j]的數(shù)據(jù)填寫到圖片緩沖區(qū)中ImageBuff (a+i*m,b+j*m)位置上的數(shù)值。注=ImageBuff是圖片緩沖區(qū),mlmage表示剛下載的圖片數(shù)據(jù)。8.步驟S208 判斷是否所有下載子任務(wù)都已經(jīng)下載完成。 如果沒有下載完成,則返回到S204重新讀取下載子任務(wù),開始新的下載。 如果所有任務(wù)都下載完成,則進(jìn)入S209進(jìn)行結(jié)束操作。9.步驟S209 保存已經(jīng)成功下載的ESML多媒體文件;預(yù)下載結(jié)束。多媒體彩顯的顯示指彩顯用戶呼叫用戶B手機(jī)時(shí),由呼叫檢測服務(wù)器檢測到用戶的呼叫;呼叫檢測服務(wù)器通過ES_BSM短信激活客戶端運(yùn)行,完成在用戶B手機(jī)上顯示彩顯用戶設(shè)置的ESML 多媒體文件的過程。具體如附圖6多媒體彩顯的顯示說明步驟S301 彩顯用戶呼叫用戶B手機(jī)。步驟S302 呼叫檢測服務(wù)器通過交換機(jī)網(wǎng)絡(luò)(信令采集、簽約觸發(fā))實(shí)時(shí)檢測到彩顯用戶呼叫用戶B手機(jī)的信息。步驟S303 呼叫檢測服務(wù)器根據(jù)檢測到的呼叫信息,判斷出需要在用戶B手機(jī)上立即顯示出彩顯用戶設(shè)置的彩顯內(nèi)容。生成一個(gè)顯示ESML多媒體文件的ES_BSM短信發(fā)送任務(wù)。步驟S303 :ES_BSM服務(wù)器根據(jù)發(fā)送任務(wù),生成ES_BSM消息并通過短信中心、短信網(wǎng)關(guān)發(fā)送給用戶B。ES_BSM短信內(nèi)容如下· GSM協(xié)議類型■ TP-UDHI 設(shè)置為 0x01 ;■ TP-PID 設(shè)置為 0x01 ;· TP-DCS =0x04 ;參 WBXML 壓縮 XML■長度,設(shè)置為0X06;■類型0x05 ;■長度0x04■ H-PORT 手機(jī)端安裝多媒體彩顯MIDlet客戶端應(yīng)用程序時(shí)生成端口資源,優(yōu)先采用9901 ;如果被占用則另外特定申請;■ O-PORT 0X0000 短信內(nèi)容■操作類型0x03表示立即顯示;■參數(shù) 1,
標(biāo)記為0,表示簽名用戶的號碼;長度為χ 后面帶手機(jī)號碼的具體長度;參數(shù)內(nèi)容為手機(jī)號碼;■參數(shù) 2,標(biāo)記為9,表示ESML多媒體文件ID ;長度為χ 長度;參數(shù)內(nèi)容表示ESML多媒體文件編號;步驟S305 用戶B手機(jī)接收到ES_BSM短信之后,激活客戶端運(yùn)行。激活客戶端運(yùn)行過程如下1)多媒體彩顯MIDlet客戶端應(yīng)用程序以靜態(tài)方式把啟動(dòng)事件(ES_BSM接入連接事件)注冊到接入連接觸發(fā)器;2)用戶手機(jī)收到ES_BSM短信之后;根據(jù)ES_BSM中TP-UDHI、TP-PID、WBXML消息內(nèi)容,產(chǎn)生ES_BSM接入連接事件;3)手機(jī)應(yīng)用管理系統(tǒng)監(jiān)視到ES_BSM接入連接事件;通知手機(jī)的接入連接觸發(fā)器;4)接入連接觸發(fā)器根據(jù)上面安裝ESMLPushMIDlet時(shí)靜態(tài)注冊要求,啟動(dòng)觸發(fā)器中ES_BSM接入連接事件對應(yīng)的ESMLPushMIDlet應(yīng)用程序;5)ESMLPushMIDlet 應(yīng)用程序通過 sms. ESMLReceive, SMS. ESMLConnect 等方法完成ES_BSM短信接收和分析。多媒體彩顯MIDlet客戶端應(yīng)用程序讀取ES_BSM信息(ES_BSM短信的參數(shù)2,ESML 多媒體文件ID),判斷本地是否已經(jīng)預(yù)下載此ESML多媒體文件,如果已經(jīng)預(yù)下載,則進(jìn)入 S307步驟立即顯示。如果沒有預(yù)下載,則進(jìn)入S306進(jìn)行邊下載邊顯示。步驟S306 用戶B客戶端應(yīng)用程序通過ESML服務(wù)器快速下載ESML多媒體文件, 實(shí)現(xiàn)邊下載邊顯示。下載完成之后,進(jìn)入操作步驟S308。多媒體彩顯MIDlet客戶端應(yīng)用程序通過ESML服務(wù)器指定下載參數(shù),創(chuàng)建多個(gè)線程完成ESML多媒體文件的下載并顯示。ESML多媒體文件下載并顯示如附圖7 =ESML多媒體文件下載并顯示所示,流程說明如下1)步驟S401 訪問ESML服務(wù)器,獲取下載參數(shù)。ESML服務(wù)器通過手機(jī)型號、屏幕大小,當(dāng)前ESML多媒體文件大小來指定本次下載參數(shù)(下載線程數(shù)、連接點(diǎn)個(gè)數(shù)、數(shù)據(jù)緩沖區(qū)個(gè)數(shù));2)步驟S402 下載并分析ESML標(biāo)記文件,分拆并生成下載子任務(wù)。建立用于下載的緩沖區(qū)和連接池,創(chuàng)建下載線程。 下載ESML標(biāo)記文件,根據(jù)文件指定屏幕布局、ESML標(biāo)記文件中指定媒體內(nèi)容 (文本內(nèi)容、圖片內(nèi)容、視頻內(nèi)容)生成下載子任務(wù),并根據(jù)優(yōu)先生成下載任務(wù)隊(duì)列。 圖片內(nèi)容;由ESML服務(wù)器根據(jù)當(dāng)前手機(jī)屏幕大小、分辨率、移動(dòng)網(wǎng)絡(luò)帶寬、時(shí)延限制等;計(jì)算出子圖片個(gè)數(shù),子圖片id、下載次序。通知多媒體彩顯MIDlet客戶端應(yīng)用程序進(jìn)行下載。是由img標(biāo)記中downcount和downid兩個(gè)屬性指示。Downcount 是 m*m,downid[m] [m]需要下載到手機(jī)的子圖片矩陣,mlmge[n] [η]表示圖片矩陣。
downid[i] [j] = mlmage[i*n/m] [j*n/m]。 對于ESML流媒體文件,由ESML服務(wù)器根據(jù)手機(jī)屏幕大小、分辨率、移動(dòng)網(wǎng)絡(luò)帶寬等要求,提供一個(gè)合適大小、編碼類型的視頻文件;提供多媒體彩顯MIDlet客戶端應(yīng)用程序分時(shí)分段下載。對于新創(chuàng)建的下載線程進(jìn)入S403進(jìn)行相應(yīng)操作;對于主線程進(jìn)入S413步驟進(jìn)行等待操作。3)步驟S403 新創(chuàng)建的線程根據(jù)優(yōu)先級從子任務(wù)隊(duì)列中讀取一個(gè)待下載子任務(wù); 如果任務(wù)是文本文件,則進(jìn)入S404步驟,如果任務(wù)是視頻文件,則進(jìn)入S405操作,如果任務(wù)是圖片文件,則進(jìn)入S406操作。4)步驟S404 根據(jù)任務(wù)下載文本內(nèi)容,寫到顯示緩沖區(qū)中;進(jìn)入S410操作步驟。5)步驟S405 對于視頻文件進(jìn)行分析,以15幀為視頻下載片段進(jìn)行下載;下載成功之后把數(shù)據(jù)放到顯示緩沖區(qū)中。進(jìn)入S410操作步驟。6)步驟S406 下載圖片數(shù)據(jù),完成后進(jìn)入S407操作步驟。7)步驟S407 下載得到子圖片的數(shù)據(jù)填充到圖片緩沖區(qū)。在ESML服務(wù)器分割成n*n子圖矩陣;根據(jù)屏幕需要下載m*m子圖片矩陣;當(dāng)前下載子圖ID是[脅b],則填充到圖片緩沖區(qū)處理邏輯為ImageBuff[a+i*m, b+j*m] = mlmage[i*j]。即mlmage[i*j]的數(shù)據(jù)填寫到圖片緩沖區(qū)中ImageBuff (a+i*m,b+j*m)位置上的數(shù)值。注=ImageBuff是圖片緩沖區(qū),mlmage表示剛下載的圖片數(shù)據(jù)。8)步驟S408 判斷原圖片緩沖區(qū)是否為空。原圖片緩沖區(qū)為空表示圖片緩沖區(qū)所有數(shù)據(jù)無效(都為空);上面下載的子圖片數(shù)據(jù)只能填充一部分(a+i*m,b+j*m),m是2,則 j或i每增加一個(gè);緩沖數(shù)據(jù)是增加2個(gè),中間有1個(gè)像素點(diǎn)數(shù)據(jù)是無效。如果是m是3,則中間有兩個(gè)像素點(diǎn)是無效。所以進(jìn)入S409進(jìn)行操作。如果原圖不為空,說明所有數(shù)據(jù)已經(jīng)進(jìn)行過一次填充;已經(jīng)可以進(jìn)行相應(yīng)的顯示, 就是圖片品質(zhì)差一點(diǎn)。所以直接進(jìn)入S410進(jìn)行操作。9)步驟S409 雙向線性填充法填充無效的部分,使所有數(shù)據(jù)變成有效。這樣可以讓主線程進(jìn)行顯示。其處理邏輯如附圖8 雙向線性填充法說明。如圖8所示,A、B、C、D是4個(gè)不相鄰的像素點(diǎn),但它們之間像素點(diǎn)數(shù)值暫時(shí)無效; 需要進(jìn)行有效化處理之后才能顯示,通過一種算法讓所有像素點(diǎn)數(shù)值變成有效。Z(x,y)表無效像素點(diǎn),其中χ表示X方向坐標(biāo),y表示Y方向的坐標(biāo)值,同樣A(a,b),a表示X方向坐標(biāo)值,b表示Y方向的坐標(biāo)值。A、B、C、D表示對應(yīng)像素點(diǎn)數(shù)據(jù)。在(x,y)像素點(diǎn)上Z數(shù)據(jù)通過如下方法進(jìn)行計(jì)算。Zl(x,y) ^A(a,b) + (B"A)*(X"a)
c~aZ2(x,y) = A (a, b) + “)
ι 一bZ3(x,y) = C(a’ i) +
c~aZ4(x,y) = B (c, b) + (D"B).
ι 一bΓ 、 Ζ1+Ζ2+Ζ3+Ζ4Z (x,y)=---10)步驟S410 通知主線程,表示一個(gè)下載子任務(wù)已經(jīng)完成。通知內(nèi)容中包括下載子任務(wù)的編號、下載時(shí)長信息。11)步驟S411 判斷是否所有下載子任務(wù)都已經(jīng)下載完成。 如果沒有下載完成,則返回到S403重新讀取下載子任務(wù),開始新的下載。 如果所有任務(wù)都下載完成,則進(jìn)入S412進(jìn)行結(jié)束操作。12)步驟S412下載完成,退出下載并顯示的流程。13)步驟S413等下載線程通知。14)步驟S414刷新屏幕,完成之后進(jìn)入S233操作。不是每一次收到下載完成通知,都去全屏幕刷新,這樣存在很多無效刷新,增加手機(jī)性能負(fù)荷。首先對于上次刷新時(shí)間進(jìn)行判斷,如果小于200ms先不刷新屏幕布局,啟動(dòng)200ms 的定時(shí)器;要求200ms之后進(jìn)行刷新。只刷新指定區(qū)域,根據(jù)下載任務(wù)ID、ESML標(biāo)記文件中信息計(jì)算本次任務(wù)下載影響屏幕區(qū)域;直接把更新緩沖區(qū)數(shù)據(jù)復(fù)制到指定的屏幕區(qū)域;對指定區(qū)域進(jìn)行顯示刷新的請求。15)步驟S415判斷所有子任務(wù)下載完成,如果下載完成,則進(jìn)入S212進(jìn)行結(jié)束退出操作;如果沒有完成,則返回S413繼續(xù)等待。步驟S307 立即顯示多媒體彩顯內(nèi)容,進(jìn)入S308操作。步驟S308 等待用戶B手機(jī)按鍵退出。最后應(yīng)說明,以上實(shí)例僅用以說明本發(fā)明的技術(shù)方案并且不限與此,而是在應(yīng)用上可以延伸到其它的修改,變化,應(yīng)用,并且認(rèn)為所有這樣的修改,變化,應(yīng)用,實(shí)施實(shí)例都在本發(fā)明的精神和范圍內(nèi)。
19
權(quán)利要求
1.一種多媒體彩顯快速推送的方法,其特征是多媒體彩顯快速推送由多媒體彩顯的預(yù)處理和多媒體彩顯的顯示這兩個(gè)過程來完成;(一)、多媒體彩顯的預(yù)處理彩顯用戶通過WEB方式設(shè)置一個(gè)多媒體彩顯,ES_BSM服務(wù)器生成ES_BSM短信,下發(fā)給用戶手機(jī),完成多媒體彩顯的主動(dòng)推送過程;步驟SOOl 用戶手機(jī)根據(jù)WAPPUSH、WAP安裝多媒體彩顯MIDlet客戶端應(yīng)用程序;程序根據(jù)設(shè)置的要求;把ESMLPushMIDlet、ES_BSM接入連接事件注冊到接入連接觸發(fā)器,要求手機(jī)檢測到ES_BSM接入連接事件時(shí)激活和運(yùn)行ESMLPushMIDlet應(yīng)用程序;步驟S002 彩顯用戶登錄到WEB服務(wù)器,設(shè)置一個(gè)多媒體彩顯,選擇接收這一個(gè)多媒體彩顯的用戶群;步驟S003 =WEB服務(wù)器調(diào)用ESML服務(wù)器,對彩顯文件進(jìn)行分拆、壓縮生成ESML多媒體文件;步驟S004 :WEB服務(wù)器對于要求接收的用戶群并且已經(jīng)安裝多媒體彩顯MIDlet客戶端應(yīng)用程序的用戶生成ES_BSM任務(wù);同時(shí)把EB_BSM任務(wù)提交給ES_BSM服務(wù)器;步驟S005 :ES_BSM管理器根據(jù)TOB服務(wù)器提交的任務(wù),生成ES_BSM發(fā)送請求;通過短信網(wǎng)關(guān)、短信中心向用戶發(fā)送ES_BSM短信;步驟S006 用戶手機(jī)接收到ES_BSM短信之后,激活客戶端運(yùn)行;步驟S007 =MIDlet客戶端根據(jù)ES_BSM信息下載請求,完成ESML多媒體文件預(yù)下載;(二)、多媒體彩顯的顯示指彩顯用戶呼叫用戶B手機(jī)時(shí),由呼叫檢測服務(wù)器檢測到用戶的呼叫;呼叫檢測服務(wù)器通過ES_BSM短信激活客戶端運(yùn)行,完成在用戶B手機(jī)上顯示彩顯用戶設(shè)置的ESML多媒體文件的過程;步驟S301 彩顯用戶呼叫用戶B手機(jī);步驟S302 呼叫檢測服務(wù)器通過交換機(jī)網(wǎng)絡(luò)實(shí)時(shí)檢測到彩顯用戶呼叫用戶B手機(jī)的信息;步驟S303 呼叫檢測服務(wù)器根據(jù)檢測到的呼叫信息,判斷出需要在用戶B手機(jī)上立即顯示出彩顯用戶設(shè)置的彩顯內(nèi)容,生成一個(gè)顯示ESML多媒體文件的ES_BSM短信發(fā)送任務(wù);步驟S304 :ES_BSM服務(wù)器根據(jù)發(fā)送任務(wù),生成ES_BSM消息并通過短信中心、短信網(wǎng)關(guān)給用戶B手機(jī)發(fā)送ES_BSM短信;步驟S305 用戶B手機(jī)接收到ES_BSM短信之后,激活客戶端運(yùn)行;如果多媒體彩顯已經(jīng)完成預(yù)下載,進(jìn)入操作步驟S307;如果多媒體彩顯沒有完成預(yù)下載,需要邊下載邊顯示, 進(jìn)入操作步驟S306 ;步驟S306 用戶B客戶端應(yīng)用程序通過ESML服務(wù)器快速下載ESML多媒體文件,實(shí)現(xiàn)邊下載邊顯示,下載完成之后,進(jìn)入操作步驟S308 ;步驟S307 立即顯示多媒體彩顯內(nèi)容,進(jìn)入S308操作; 步驟S308 等待用戶B手機(jī)按鍵退出。
2.根據(jù)權(quán)利要求1所述的多媒體彩顯快速推送的方法,其特征是所述的一個(gè)多媒體彩顯內(nèi)容組成一個(gè)ESML媒體文件,一個(gè)ESML媒體文件是由多個(gè)文件組成,包含一個(gè)ESML 標(biāo)記文件、0個(gè)或多個(gè)文本文件、0個(gè)或多個(gè)圖片文件、0個(gè)或多個(gè)視頻文件;ESML標(biāo)記文件通過ESML標(biāo)記來定義多媒彩顯屏幕框架,詳細(xì)定義出文本內(nèi)容、圖片內(nèi)容、視頻內(nèi)容、以及它們的顯示大小、位置、下載前后順序、所引用的文件URI信息;將圖片內(nèi)容的大小為X*Y的圖片分拆成Ν*Ν個(gè)子圖片,以mLiig[X/N] [Υ/Ν] [N] [N]表示分拆后子圖片矩陣,mImg[X/N] [Y/N] [i] [j]表示子圖片矩陣中第i行、j列的子圖片數(shù)據(jù),其子圖片大小是(X/n)*(Y/n) 像素,寬縮小η倍,高縮小η倍;oImg[X] [Y]表示原圖的數(shù)據(jù),子圖片矩陣的(i,j)子圖片在(X,y)位置上像素點(diǎn)數(shù)值計(jì)算方法為mlmg[i, j] [χ] [y] = oImg[x*n+i] [y*n+j]。
3.根據(jù)權(quán)利要求1所述的多媒體彩顯快速推送的方法,其特征是所述的ES_BSM短信激活客戶端運(yùn)行步驟如下1)多媒體彩顯MIDlet客戶端應(yīng)用程序以靜態(tài)方式把ES_BSM接入連接事件注冊到接入連接觸發(fā)器;a)通過JAD 文件中增加 MIDlet-Push-I :sms://:9901, ESMLPushMIDlet,注冊了 9901 端口和短信接入類型作為啟動(dòng)ESMLPushMIDlet的接入連接事件;b)Android手機(jī)通過intent-f iIter注冊9901端口號和短信接入類型作為啟動(dòng) ESMLPushMIDlet的接入連接事件;2)用戶手機(jī)收到ES_BSM短信之后;根據(jù)ES_BSM中TP-UDHI、TP_PID、WBXML消息內(nèi)容, 產(chǎn)生ES_BSM接入連接事件;3)手機(jī)應(yīng)用管理系統(tǒng)監(jiān)視到ES_BSM接入連接事件,通知手機(jī)的接入連接觸發(fā)器;4)接入連接觸發(fā)器根據(jù)上面安裝ESMLPushMIDlet時(shí)靜態(tài)注冊要求,啟動(dòng)觸發(fā)器中ES_ BSM接入連接事件對應(yīng)的ESMLPushMIDlet應(yīng)用程序;5)ESMLPushMIDlet應(yīng)用程序通過 sms. ESMLReceive, SMS. ESMLConnect 方法完成 ES_ BSM短信接收和分析。
4.根據(jù)權(quán)利要求1所述的多媒體彩顯快速推送的方法,其特征是所述的ESML多媒體文件預(yù)下載步驟如下1)步驟S201訪問ESML服務(wù)器,獲取下載參數(shù),ESML服務(wù)器通過手機(jī)型號、屏幕大小, 當(dāng)前ESML多媒體文件大小來指定本次預(yù)下載的緩沖區(qū);2)步驟S202下載并分析ESML標(biāo)記文件,分拆并生成下載子任務(wù),建立用于下載的緩沖區(qū);3)步驟S203讀取一個(gè)下載子任務(wù),根據(jù)優(yōu)先級從子任務(wù)隊(duì)列中讀取一個(gè)待下載子任務(wù);如果任務(wù)是文本文件,則進(jìn)入S205步驟,如果任務(wù)是視頻文件,則進(jìn)入S206操作,如果任務(wù)是圖片文件,則進(jìn)入S206操作;4)步驟S204根據(jù)任務(wù)下載文本內(nèi)容,寫到顯示緩沖區(qū)中,進(jìn)入S208操作步驟;5)步驟S205對于視頻文件進(jìn)行分析,以15幀為視頻下載片段進(jìn)行下載;下載成功之后把數(shù)據(jù)放到顯示緩沖區(qū)中,進(jìn)入S208操作步驟;6)步驟S206下載圖片數(shù)據(jù),完成后進(jìn)入S207操作步驟;7)步驟S207下載得到子圖片的數(shù)據(jù)填充到圖片緩沖區(qū),完成之后進(jìn)入S208步驟操作;錯(cuò)誤!未定義書簽。8)步驟S208判斷是否所有下載子任務(wù)都已經(jīng)下載完成; 如果沒有下載完成,則返回到S204重新讀取下載子任務(wù),開始新的下載;眷如果所有任務(wù)都下載完成,則進(jìn)入S209進(jìn)行結(jié)束操作;9)步驟S209保存已經(jīng)成功下載的ESML多媒體文件,預(yù)下載結(jié)束。
5.根據(jù)權(quán)利要求1所述的多媒體彩顯快速推送的方法,其特征是在步驟S305中,激活客戶端運(yùn)行過程如下(1)多媒體彩顯MIDlet客戶端應(yīng)用程序以靜態(tài)方式把ES_BSM接入連接事件注冊到接入連接觸發(fā)器;(2)用戶手機(jī)收到ES_BSM短信之后,根據(jù)ES_BSM中TP-UDHI、TP_PID、WBXML消息內(nèi)容, 產(chǎn)生ES_BSM接入連接事件;(3)手機(jī)應(yīng)用管理系統(tǒng)監(jiān)視到ES_BSM接入連接事件,通知手機(jī)的接入連接觸發(fā)器;(4)接入連接觸發(fā)器根據(jù)上面安裝ESMLPushMIDlet時(shí)靜態(tài)注冊要求,啟動(dòng)觸發(fā)器中 ES_BSM接入連接事件對應(yīng)的ESMLPushMIDlet應(yīng)用程序;(5)ESMLPushMIDlet應(yīng)用程序通過 sms. ESMLReceive, SMS. ESMLConnect 方法完成 ES_ BSM短信接收和分析;多媒體彩顯MIDlet客戶端應(yīng)用程序讀取ES_BSM信息,判斷本地是否已經(jīng)預(yù)下載此 ESML多媒體文件,如果已經(jīng)預(yù)下載,則進(jìn)入S307步驟立即顯示,如果沒有預(yù)下載,則進(jìn)入 S306步驟進(jìn)行邊下載邊顯示。
6.根據(jù)權(quán)利要求1所述的多媒體彩顯快速推送的方法,其特征是在步驟S306中, ESML多媒體文件下載并顯示的流程說明如下1)步驟S401訪問ESML服務(wù)器,獲取下載參數(shù),ESML服務(wù)器通過手機(jī)型號、屏幕大小, 當(dāng)前ESML多媒體文件大小來指定本次下載參數(shù);2)步驟S402下載并分析ESML標(biāo)記文件,分拆并生成下載子任務(wù),建立用于下載的緩沖區(qū)和連接池,創(chuàng)建下載線程;3)步驟S403新創(chuàng)建的線程根據(jù)優(yōu)先級從子任務(wù)隊(duì)列中讀取一個(gè)待下載子任務(wù);如果任務(wù)是文本文件,則進(jìn)入S404步驟,如果任務(wù)是視頻文件,則進(jìn)入S405操作,如果任務(wù)是圖片文件,則進(jìn)入S406操作;4)步驟S404根據(jù)任務(wù)下載文本內(nèi)容,寫到顯示緩沖區(qū)中;進(jìn)入S410操作步驟;5)步驟S405對于視頻文件進(jìn)行分析,以15幀為視頻下載片段進(jìn)行下載;下載成功之后把數(shù)據(jù)放到顯示緩沖區(qū)中,進(jìn)入S410操作步驟;6)步驟S406下載圖片數(shù)據(jù),完成后進(jìn)入S407操作步驟;7)步驟S407下載得到子圖片的數(shù)據(jù)填充到圖片緩沖區(qū);8)步驟S408判斷原圖片緩沖區(qū)是否為空,原圖片緩沖區(qū)為空表示圖片緩沖區(qū)所有數(shù)據(jù)無效;上面下載的子圖片數(shù)據(jù)只能填充一部分(a+i*m,b+j*m),a、b表示子圖片的矩陣編號,i、j表示子圖中某個(gè)像素點(diǎn)的位置,m是2表示共由2 個(gè)子圖組成;則j或i每增加一個(gè),緩沖數(shù)據(jù)是增加2個(gè),中間有1個(gè)像素點(diǎn)數(shù)據(jù)是無效;如果是m是3,則中間有兩個(gè)像素點(diǎn)是無效,進(jìn)入S409進(jìn)行操作;如果原圖不為空,則直接進(jìn)入S410進(jìn)行操作;9)步驟S409雙向線性填充法填充無效的部分,使所有數(shù)據(jù)變成有效,主線程正確顯示出原圖來;10)步驟S410通知主線程,表示一個(gè)下載子任務(wù)已經(jīng)完成,通知內(nèi)容中包括下載子任務(wù)的編號、下載時(shí)長信息;11)步驟S411判斷是否所有下載子任務(wù)都已經(jīng)下載完成; 如果沒有下載完成,則返回到S403重新讀取下載子任務(wù),開始新的下載;眷如果所有任務(wù)都下載完成,則進(jìn)入S412進(jìn)行結(jié)束操作;12)步驟S412下載完成,退出下載并顯示的流程;13)步驟S413等待下載線程通知;14)步驟S414刷新屏幕,完成之后進(jìn)入S233操作;15)步驟S415判斷所有子任務(wù)下載完成,如果下載完成,則進(jìn)入S212進(jìn)行結(jié)束退出操作;如果沒有完成,則返回S413繼續(xù)等待。
7.根據(jù)權(quán)利要求4或6所述的多媒體彩顯快速推送的方法,其特征是在步驟S207 和步驟S407中數(shù)據(jù)填充方法如下在ESML服務(wù)器分割成n*n子圖矩陣,根據(jù)屏幕需要下載m*m子圖片矩陣;當(dāng)前下載子圖ID是[脅b],則填充到圖片緩沖區(qū)處理邏輯為 ImageBuff [a+i*m, b+j*m] = mlmage[i*j],即 mlmage[i*j]的數(shù)據(jù)填寫到圖片緩沖區(qū)中 ImageBuff (a+i*m,b+j*m)位置上的數(shù)值;ImageBuff是圖片緩沖區(qū),mlmage表示剛下載的圖片數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的多媒體彩顯快速推送的方法,其特征是在步驟S409中雙向線性填充法中,Z(x,y)表無效像素點(diǎn),其中χ表示X方向坐標(biāo),y表示Y方向的坐標(biāo)值,同樣A(a,b),a表示X方向坐標(biāo)值,b表示Y方向的坐標(biāo)值,A、B、C、D表示對應(yīng)像素點(diǎn)數(shù)據(jù), 在(X,y)像素點(diǎn)上Z數(shù)據(jù)通過如下方法進(jìn)行計(jì)算;
9.根據(jù)權(quán)利要求6所述的多媒體彩顯快速推送的方法,其特征是在步驟S414中,首先對于上次刷新時(shí)間進(jìn)行判斷,如果小于200ms先不刷新屏幕布局,啟動(dòng)200ms的定時(shí)器; 要求200ms之后進(jìn)行刷新;只刷新指定區(qū)域,根據(jù)下載任務(wù)ID、ESML標(biāo)記文件中信息計(jì)算本次任務(wù)下載影響屏幕區(qū)域;直接把更新緩沖區(qū)數(shù)據(jù)復(fù)制到指定的屏幕區(qū)域;對指定區(qū)域進(jìn)行顯示刷新的請求。
全文摘要
本發(fā)明是一種多媒體彩顯快速推送的方法,多媒體彩顯快速推送由多媒體彩顯的預(yù)處理和多媒體彩顯的顯示這兩個(gè)過程來完成;多媒體彩顯的預(yù)處理彩顯用戶通過WEB方式設(shè)置一個(gè)多媒體彩顯,ES_BSM服務(wù)器生成ES_BSM短信,下發(fā)給用戶手機(jī),完成多媒體彩顯的主動(dòng)推送過程;多媒體彩顯的顯示指彩顯用戶呼叫用戶B手機(jī)時(shí),由呼叫檢測服務(wù)器檢測到用戶的呼叫;呼叫檢測服務(wù)器通過ES_BSM短信激活客戶端運(yùn)行,完成在用戶B手機(jī)上顯示彩顯用戶設(shè)置的ESML多媒體文件的過程。本發(fā)明有益的效果是本方法定義了ES_BSM短信、ESML媒體語言方法,一舉解決了終端普適性和傳輸時(shí)延的兩大問題,可以達(dá)到與文字信息類似的效果。
文檔編號H04W4/12GK102256221SQ201110167119
公開日2011年11月23日 申請日期2011年6月10日 優(yōu)先權(quán)日2011年5月7日
發(fā)明者盧先敏, 呂凡, 陳驤 申請人:杭州仁網(wǎng)科技有限公司