【正文】
le)和基于FP的Personal Profile和RMI Profile。CVM應(yīng)用于那些瘦客戶端,如數(shù)字機(jī)頂盒,車載電子系統(tǒng)等;KVM應(yīng)用于那些電池供電的手持移動設(shè)備,如移動電話,PDA等。CLDC主要面向那些網(wǎng)絡(luò)連接速度慢,電能有限(電池供電),128KB512KB內(nèi)存的設(shè)備。 J2SE,CDC與CLDC之間的關(guān)系CLDC類庫一部分來自J2SE,這部分類庫是經(jīng)過裁剪的,去除了不必要的功能。(1).KJavaKJava簡表建立在CLDC之上,其虛擬機(jī)是KVM。MIDP是一個(gè)公共的,為移動設(shè)備設(shè)計(jì)的工業(yè)標(biāo)準(zhǔn)簡表,它不依賴于任何具體的生產(chǎn)廠家。(2).編譯Java源代碼。如果在手機(jī)中測試也通過的話,就可以發(fā)布了,如果在手機(jī)中執(zhí)行還存在問題,還要返回第一個(gè)步驟。由于TCP需要較多的開銷,因此不太適合傳輸實(shí)時(shí)數(shù)據(jù)。實(shí)現(xiàn)流式傳輸一般都需要專用服務(wù)器和播放器。RTCP(Realtime Transport Control Protocol)與RTP共同提供流量控制和擁塞控制服務(wù)。RSVP(Resource Reservation Protocol)是一種正在開發(fā)的Internet資源預(yù)訂協(xié)議,它通過采取預(yù)留一部分網(wǎng)絡(luò)資源(帶寬)的措施,在一定程度上為流媒體傳輸提供QoS。采用兩種播放形式: 本地播放與網(wǎng)絡(luò)播放。用生成對象打開URL所指的文件生成一個(gè)videoCanvas對象執(zhí)行waitcanvas類行成等待界面本地播放文件打開成功打開否播放本地文件關(guān)閉這個(gè)MIDLet程序打開失敗 圖 網(wǎng)絡(luò)播放視頻或音頻文件流程圖 : 系統(tǒng)首先生成一個(gè) WaitCanvas 對象, 繼而生成一個(gè)等待界面, 然后生成一個(gè) VideoCanvas 對象 , 用 VideoCanvas 生成的對象打開用戶輸入的 URL。啟動MIDlet進(jìn)行輸入IP,播放文件的名稱輸入是否正確功能對視頻音頻文件進(jìn)行操作本地網(wǎng)絡(luò)判斷是否網(wǎng)絡(luò)或者本地播放對視頻音頻文件進(jìn)行操作 客戶端 MIDP 設(shè)計(jì)流程流程說明: 系統(tǒng)首先啟動 MIDlet, 用戶輸入所要訪問服務(wù) 器的 IP ,均需重新輸 入。這是由 mandAction()來控制的,它還控制整個(gè)程序的運(yùn)行,根據(jù)用戶輸入打開URL, 對播放文件進(jìn)行控制等等以下列出這個(gè)主程序的代碼:public cla s s ControlVide o e xte nds MIDle t im ple m e ntsCom m a ndLis te ne r {public ControlVide o() { // 形成輸入界面, 輸入 IP 地址與所要 訪問的文件全稱}priva te void initia lize () { // 添加返回按鈕}public void pa int() { // 只有播放視頻的時(shí)候可以使用全屏}priva te int tim e 2pix() { // 計(jì)算播放的時(shí)間}public void ope n() { // 打開文件}public s ynchronize d void pa us e App() { // 終止程序}public void run() { // 開啟新的線程}public void pla ye rUpda te () { // 是否播放結(jié)束}priva te void doS na ps hot() { // 抓圖功能}public s ynchronize d void s ta rtApp() { // 開啟程序}public void ke yP re s s e d() { // 用手機(jī)里的按鍵進(jìn)行操作}}這里主要是設(shè)計(jì)一個(gè)單獨(dú)的類, 名稱為 VideoType, 它先從 用戶輸入的 URL 分析用戶輸入的信息, 從中分離出輸入的 IP 地址,端口號以及文件的名稱, 再判別用戶輸入的文件的類型。在整個(gè)合作過程中,我們改進(jìn)了流媒體固定的播放模式,實(shí)現(xiàn)了移動終端真正的流媒體播放,把客戶端播放器設(shè)計(jì)完成。而且目前的城市的網(wǎng)絡(luò)覆蓋率比較的好。實(shí) 現(xiàn)的前提條件是:(1)有正常的網(wǎng)絡(luò)連接(2)有已經(jīng)連接的遠(yuǎn)端媒體文件(3)HTTP協(xié)議的相關(guān)設(shè)置無誤基本過程:(1)用戶發(fā)出斷開連接的請求(2)停止播放當(dāng)前媒體文件(3)斷開和當(dāng)前遠(yuǎn)端媒體文件的連接替代過程:(3)斷開連接失敗,提示用戶失敗信息在對流媒體播放器實(shí)現(xiàn)播放的整個(gè)過程認(rèn)真分析后,:開始 解碼是否編碼成功 N 播放命令 Y暫停播放播放文件提示出錯(cuò) 暫停命令 停止命令結(jié)束 停止命令 播放流程圖由流媒體播放器的播放流程圖可直觀地得出其工作流程包括以下幾個(gè)步驟:(1)系統(tǒng)解碼;(2)如無法解碼,則提示出錯(cuò),然后結(jié)束;(3)解碼成功,則播放文件;(4)如接到停止命令,則結(jié)束;(5)暫停播放;(6)如接到停止命令,則結(jié)束;(7)如接到播放命令,則轉(zhuǎn)到步驟(3),先由服務(wù)器端開啟GPRS連接,客戶端搜索到在線服務(wù)器之后,選擇相應(yīng)的手機(jī),然后服務(wù)器端會收到確認(rèn)連接,服務(wù)器確定之后,連接建立完成。)。:Audio類說明:Audio 管理. 每個(gè)audio文件綁定一個(gè)player。只需經(jīng)過幾秒的啟動延時(shí)即可在用戶計(jì)算機(jī)上利用相應(yīng)的播放器進(jìn)行播放和觀看,甚至可以隨時(shí)地進(jìn)行暫停、快進(jìn)、快退等操作。在畢業(yè)設(shè)計(jì)的過程中,她認(rèn)真負(fù)責(zé)的工作態(tài)度、嚴(yán)謹(jǐn)?shù)闹螌W(xué)風(fēng)格,使我深受啟發(fā),這不僅使我得以完成畢業(yè)設(shè)計(jì),而且在今后的學(xué)習(xí)中,我也會受益非淺。還要感謝跟我一同合作完成設(shè)計(jì)的XXX同學(xué),他在這次設(shè)計(jì)中給了我很多幫助和建議。本文詳細(xì)介紹了流媒體技術(shù)在移動終端的應(yīng)用,具體介紹了流媒體的概念,流媒體技術(shù)的基本原理以及移動終端流媒體解決方案——J2ME技術(shù)。所在子系統(tǒng):緩沖機(jī)制的核心算法:第一步:聲明兩個(gè)Player;第二步:HttpConnection開始向服務(wù)器請求該audio文件的第一部分字節(jié),我們定這次讀取的字節(jié)數(shù)為18KB;第三步:等第一部分?jǐn)?shù)據(jù)到位后,Player A開始realize和prefetch,并開始播放;第四步:在Player A播放同時(shí),(18KB的amr數(shù)據(jù)可以播放10秒鐘),HttpConnection繼續(xù)請求第二部分?jǐn)?shù)據(jù)(假設(shè)GPRS每秒鐘傳輸3KB,那么18KB需要傳輸6秒,算上前后通訊損失的時(shí)間,應(yīng)該不會超過10秒鐘);第五步:第二部分?jǐn)?shù)據(jù)到位后,假設(shè)Player A還沒有播放完(這需要調(diào)整你的每一部份數(shù)據(jù)字節(jié)數(shù)來使得假設(shè)成立),那么將數(shù)據(jù)喂給Player B讓它realize和prefetch;第六步:Player A播放完后,得到事件通知,于是讓Player B開始播放。 // } } else{ sRequestURL = sResource。所在子系統(tǒng):GetDynamicIP判斷是否走cmwep代理:if(m_bCMWAPProxy == true) { if((://)) { nPosIndex = (7, ()).indexOf(39。(2)現(xiàn)在的GPRS網(wǎng)絡(luò)環(huán)境對媒體文件下載的支持(3)如何設(shè)計(jì)一項(xiàng)全新多媒體播放器,為將來的多媒體移動服務(wù)打下堅(jiān)實(shí)的基礎(chǔ)。流媒體技術(shù)具體來講,就是把連續(xù)的影像和聲音絡(luò)服務(wù)器上,通過因特網(wǎng)讓瀏覽者一邊下載一邊觀看、信息經(jīng)過壓縮處理后放到流媒體網(wǎng)收聽,而不需要等到整個(gè)多媒體文件下載完成就可以即時(shí)觀看的技術(shù)。以下是主要代碼:public cla s s Vide oType {} // 判斷支持的播放類型public S tring gue s s Conte ntType () throws Exce ption { // 猜測播放類型, 分析用戶的輸入的文件類型。系統(tǒng)根據(jù)所輸入的IP 地址判斷并進(jìn)行本地播放或網(wǎng)絡(luò)播放。如果打開成功,系統(tǒng)進(jìn)行播放。 網(wǎng)絡(luò)播放: 調(diào)用播放網(wǎng)絡(luò)服務(wù)器里的音頻文件, 它在空間上延伸了 internet 網(wǎng)絡(luò)服務(wù),在時(shí)間上更具有靈活性。3GPP UMTS視頻媒體編解碼技術(shù)規(guī)范是ITUT profile 0 level 10,也是PSS必須使用的視頻解碼器。RTP與RTCP的配合使用可有效地進(jìn)行反饋,從而減小開銷,提高傳輸效率,非常適合傳送網(wǎng)上的實(shí)時(shí)數(shù)據(jù)。移動流媒體系統(tǒng)的網(wǎng)絡(luò)協(xié)議結(jié)構(gòu)如圖 所示 ,其中視頻、音頻等流媒體數(shù)據(jù)通過 TCP/ UD P 來承載 。用戶選擇某一流媒體服務(wù)后,Web瀏覽器與Web服務(wù)器之間使用HTTP/TCP交換控制信息,以便把需要傳輸?shù)膶?shí)時(shí)數(shù)據(jù)從原始信息中檢索出來,然后客戶機(jī)上的Web瀏覽器啟動A/V Helper程序,使用HTTP從Web服務(wù)器檢索相關(guān)參數(shù)對Helper程序初始化。兩者都是程序發(fā)布時(shí)使用的文件,也就是最后發(fā)布給用戶時(shí)分發(fā)的文件,有些手機(jī)在發(fā)布時(shí)只需要jar文件即可。(3).預(yù)審核編譯生成的class文件。,對游戲和多媒體的支持很弱;.,其中增加了諸如按鍵狀態(tài)查詢,主動渲染和基本的聲音支持。在早期的開發(fā)中,這些類被廣泛的用來測試和演示J2MD。CDC類庫則是CLDC的超集,因此為CLDC開發(fā)的應(yīng)用程序可以移植到CDC平臺。, 。 J2ME,J2SE,J2EE的虛擬機(jī)配置是指將基本運(yùn)行時(shí)環(huán)境定義為一套核心類和一個(gè)運(yùn)行在特定類型設(shè)備上的特定的JVM。Java虛擬機(jī)是Java平臺無關(guān)性的關(guān)鍵技術(shù)。當(dāng)前J2ME提供兩個(gè)配置:CDC配置和CLDC配置,分別針對前面所介紹的兩種類型的設(shè)備。 J2ME和Java其他兩個(gè)版本的對比 Java版本的劃分和針對的設(shè)備●J2EE:Java 2 平臺企業(yè)版(Java 2 Platform Enterprise Edition),用于企業(yè)為客戶,供應(yīng)商和員工的可升級的服務(wù)器解決方案。第三章 移動終端流媒體播放器的設(shè)計(jì)實(shí)現(xiàn)。Series 60 平臺是在Symbian OS之上進(jìn)行構(gòu)建的,通過可配置的圖形化用戶接口庫,全面地應(yīng)用程序套件以及其它通用引擎進(jìn)行了補(bǔ)充。與其他手機(jī)操作系統(tǒng)相比Smartphone更類似于PC在手