鄭昀@ultrapower產品名稱產品版本Keyword:JavaMEStreamingAudioMMAPIStreamingDemo" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

[J2ME]手機流媒體之實作[附源碼][與RTSP/MMS協

系統 2037 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

鄭昀 @ultrapower

產品名稱

產品版本

Keyword: JavaME Streaming Audio MMAPI

StreamingDemo

1.0.13

[J2ME]現行環境下 手機

實現網絡媒體的流暢實時播放

之簡單演示

(StreamingDemo)

說明

我的資源:

http://www.cnblogs.com/Files/zhengyun_ustc/StreamingDemo-src-1.0.13.rar

這個 1.0.13 版本是 j2me 流媒體播放思路的簡單演示軟件,并不是對現有的RTSP/MMS流媒體服務器的客戶端實現,而是自定義算法下載來保證實時播放,可以在 Nokia 7610 手機上真實運行。在手機上使用,請在選擇連接點時選擇“移動夢網”連接點。

如果修改源代碼中 CommandResources.java 中的 m_bCMWAPProxy 標志使之走 CMNET 通道,那么能夠在 Nokia S60 的模擬器上運行。

本源代碼的大致思路來自于我上次寫的三篇討論稿

J2me 流媒體技術實現討論 [1]

J2me 流媒體技術實現討論 [2]

J2me 流媒體技術實現討論 [3] StreamingDemo 的代碼你可以借鑒,但不得用于商業用途,除非得到我的授權。

手機jar安裝包下載:
http://www.cnblogs.com/Files/zhengyun_ustc/StreamingDemo-deployed.rar
可以將這個包中的StreamingDemo.jar傳到您的手機上進行安裝。
使用時,請選擇移動夢網連接點。

如果你想使用劈分好的媒體文件,請從

http://www.cnblogs.com/Files/zhengyun_ustc/changjin.split.rar 下載。

1 背景、功能

摘要 :本章 簡單描述 StreamingDemo 的背景、功能。

1.1. 手機上的流媒體

很多人都在 j2medev.com 上討論過流媒體的實現方式。 國外有一個人提出一種思路,并且號稱在 Nokia6260 [ 相關數據:諾基亞 6260 Nokia62602.0 (3.0436.0) SymbianOS7.0s Series602.1 ProfileMIDP-2.0 ConfigurationCLDC-1.0 ] 運行了。

當然我們這里說的不是對 RTSP/MMS 這種主流的流媒體服務器的客戶端實現,因為現在中國市場的很多很多手機的 Java 環境都不支持這兩個協議,只有新出的某些手機才內置支持這一功能。

我們這次講的是,在現有 GPRS 環境下,在現有的一兩千塊錢的手機條件下,如何做到流媒體實時播放呢,而且還能做到較為流暢呢?

2006 1 月份,我 恰巧看到了

就此思路和諸位高手討論了一下,并且寫了三篇討論稿,有了大致的思路。但一直都沒有時間去測試這個思路是否可行。

今天索性抽出了一兩個小時,把這個思路寫出來放在真實手機 /GPRS 網絡上測試,不敢獨享,遂開放代碼,希望借此拋磚引玉。

這里給出 StreamingDemo 的界面,很簡單,主要的線程操作和消息處理都在后臺:

Streaming.HttpConnection

1.2. 我所謂流媒體的功能

以前我們談過:

第一步:
聲明兩個 Player ,分別由兩個獨立的線程掌控著;

第二步:
HttpConnection
開始向服務器請求該 audio 文件的第一部分字節,我們定這次讀取的字節數為 18KB

第三步:
等第一部分數據到位后, Player A 開始 realize prefetch ,并開始播放;

第四步:
Player A 播放同時, (18KB amr 數據可以播放 10 秒鐘 ) HttpConnection 繼續請求第二部分數據 ( 假設 GPRS 每秒鐘傳輸 3KB ,那么 18KB 需要傳輸 6 秒,算上前后通訊損失的時間,應該不會超過 10 秒鐘 )

第五步:
第二部分數據到位后,假設 Player A 還沒有播放完 ( 這需要調整你的每一部份數據字節數來使得假設成立 ) ,那么將數據喂給 Player B 讓它 realize prefetch

第六步:
Player A
播放完后,得到事件通知,于是讓 Player B 開始播放。

如此往復。

大致的思路就是這樣。

這次,我們起了兩個線程,一個叫做“ Main( ) ”,一個叫做“ Secondary( 從屬 ) ”,他們都掌握著一個 Player ,同樣一個是 Main Player ,一個是 Secondary Player 。這兩個 Player 的操作實際上都被 Audio.java 類完全封裝好了。線程里面僅僅是調用

Audio.prefetchSound(m_form,

m_isInputMusic,

m_Sequence);

啦,

Audio.playSound(m_Sequence);

啦,這樣就可以把媒體資源預先運算以及播放了。

同時,還必須用到 PlayerListener 接口,來得到播放器的各種事件通知,我們需要得知每一個播放器的播放結束消息,以便作出下一步選擇:是讓從屬線程開始播放呢,還是讓主線程開始播放呢。

PlayerListener 的播放結束消息 ( PlayerListener.END_OF_MEDIA ) 的處理中,我們還必須用到 MVC 模式中的 Controller ,它是代碼中的 GUIController.java ,它負責處理幾個消息:

l EventID.EVENT_MAIN_DownloadCompleted

l EventID.EVENT_Main_BeginToPlay

l EventID.EVENT_SECONDARY_BeginToPlay

怎么綜合使用這些消息和事件呢?

比如說,當主線程的媒體文件下載完畢后,就應該通知 GUIController 讓從屬線程也開始下載并加載媒體文件。

當主線程的媒體文件播放完畢了,這時候照理說從屬線程的 Player 也已經預先加載好了下一個要播放的媒體文件 ( 如果不行的話就應該調整媒體文件的大小了以使得下載時間和播放時間差不多 ) ,就應該在

public void playerUpdate(Player player, String event, Object data)

的函數處理中,讓 Secondary Player 播放了。

這次我們直接將媒體文件用討論稿中談及的 ffmpeg 自動切分的辦法,已經辟成 11 小段的 AMR 文件了,每一個 AMR 文件都可以獨立播放,連起來就是一首完整的《大長今》樂曲。

PlayerA PlayerB 只是周而復始的下載、預運算、播放他們罷了。只不過掌控著 Player 的兩個線程和主控制器,會選擇時機來讓這些操作次第展開。

上面所說的邏輯,可以用下圖表示:

2 使用感受

摘要 :本章 簡單描述 StreamingDemo 在真實 GPRS 環境下 的使用感受。

2.1. Nokia7610 手機上的設置

如果你真的要在手機上用到這種功能,那么請申請開通你的 GPRS 包月套餐,那樣 20 塊錢就可以使用 50MB 流量的 GPRS 了。

如果你的手機是 Nokia S60 系列手機,建議用 Nokia 程序管理器 設置這個應用配置一個參數: 在連接網絡時第一次詢問 。否則你會屢屢被網絡連接警告框打斷的。

2.2. Nokia7610 手機上的使用感受

這種流媒體的播放,還是取決于使用時 GPRS 網絡的好壞。

我在晚上 19 點使用了一下,感覺比較流暢,甚至超乎我的預期,不認真聽,甚至感覺不到在哪里停頓的。

但是在晚上 20 點又用了一下,就有點拖拖拉拉的,延遲較為明顯。

可見現行的 GPRS 網絡環境還是容易出現擁擠的。

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 438pt" type="#_x0000_t75" o:ole=""><imagedata src="file:///C:%5CDOCUME~1%5CZHENGY~1.VIC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C09%5Cclip_image001.emz" o:title=""></imagedata></shape>

3 開源版權聲明

由于這個 手機流媒體簡單演示 思路和代碼來自于鄭昀以前的討論稿,今為了促進 J2ME 多媒體應用發展, 決定遵照 GPL 協議的大意開放源代碼,您可以自由傳播和修改,在遵照下面的約束條件的前提下:

條件 1

只要你在 手機流媒體簡單演示 每一副本上明顯和恰當地出版版權聲明,保持此許可證的聲明和沒有擔保的聲明完整無損,并和程序一起給每個其他的程序接受者一份許可證的副本,你就可以用任何媒體復制和發布你收到的原始的程序的源代碼。你可以為轉讓副本的實際行動收取一定費用,但必須事先得到鄭昀的同意。

條件 2

你可以修改 手機流媒體簡單演示 程序的一個或幾個副本或程序的任何部分,以此形成基于程序的作品。只要你同時滿足下面的所有條件,你就可以按前面第一款的要求復制和發布這一經過修改的程序或作品。

a

你必須在修改的文件中附有明確的說明:你修改了這一文件及具體的修改日期。

b

你必須使你發布或出版的作品(它包含程序的全部或一部分,或包含由程序的全部或部分衍生的作品)允許第三方作為整體按許可證條款免費使用。

c

如果修改的程序在運行時以交互方式讀取命令,你必須使它在開始進入常規的交互使用方式時打印或顯示聲明:包括適當的版權聲明和沒有擔保的聲明(或者你提供擔保的聲明);用戶可以按此許可證條款重新發布程序的說明;并告訴用戶如何看到這一許可證的副本。(例外的情況:如果原始程序以交互方式工作,它并不打印這樣的聲明,你的基于程序的作品也就不用打印聲明)。

這樣,您就可以自由使用并傳播本源代碼, 當然請您原封不動地保留創建者 zhengyun_ustc( 鄭昀 ) 的作者信息




[J2ME]手機流媒體之實作[附源碼][與RTSP/MMS協議無關]


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 开心网五月色婷婷综合图片 | 日韩手机专区 | www.欧美com | xnxx18日本 | 91精品国产综合久久久久 | 亚洲阿v天堂2021在线观看 | 亚洲精品456人成在线 | 久久不射网 | 午夜影院毛片 | 麻豆精品视频在线 | 亚洲午夜精品一区二区三区 | 色噜噜狠狠色综合久 | 在线观看av片 | 亚洲精品久久久久一区二区三区 | 日麻批免费视频 | 99久久精品久久久久久清纯 | 久久99成人 | 不卡一区 | 久久亚洲国产欧洲精品一 | 精品美女在线观看视频在线观看 | 亚洲 中文 欧美 日韩 在线 | 无码人妻精品1国产婷婷 | 美女伊人 | 久久成人一区 | 精品久久一区二区 | 日韩精品视频免费在线观看 | 欧美精品久久久久久久久久 | 91精品观看 | 国产成人影院 | 久久色亚洲 | 国产成人高清 | 亚洲精品人人 | 久久99综合| 久久久国产精品 | 激情综合欧美 | 精品国产一二三区 | 成人激情视频在线观看 | 亚洲欧美综合网 | 久久天堂 | 哪里可以看免费的av | 色天天影视 |