程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> J2me流媒體技術實現討論[2]

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

編輯:關於JAVA

cleverpig said“之所以有些格式的媒體文件不支持分段播放,是因為它們文件中不含有索引信息。

就像在以順序方式讀取文件時無法seek一樣。。

這個問題可以通過人工(或者用程序)將文件分割後部署放到服務器上來解決。

以及“隨著iTunes4.9版的發布,podcaster(pod播客們)能夠建立自己的podcast,並可以通過增加幻燈片式的圖片使其更加吸引人。而且在附加信息中的URL還可使用戶門自由的找到其他的podcast資源。這成為了podcast世界的“大地震”。目前這一特性移植到手機上是通過劃分“章節”來完成的,即將podcast資源文件劃分為多個章節,這樣做才能讓沒有“重播/定位”能力的手機進行播放。

但是另一個挑戰將擺在移動用戶面前,例如:移動收聽必須對中斷事件進行管理。當我們正開始播放20-40分鐘的podcast時,一個電話或者短信突然到來,這些情況將使播放被迫中斷。此時我們只能選擇重新打開podcast從頭再聽或者是沒有心情從頭聽。另外媒體文件格式問題也是對移動用戶的“噩夢”,大多數手機都不支持mp3或者AAC這種podcast的文件格式,但它們都支持.3gp的標准AMR格式文件。而且能夠保存幾兆mp3或者AAC文件)的手機目前也不是很普及。

但是Tea Vui Huang制作的javacast改變了這一切。這個軟件就是將mp3音樂轉換為手機可以播放的.3gp 標准amr(audio recording format)格式。大家可以到http://www.ringtone4me.com/看看,上面有一些具有此類功能軟件鏈接。

javacast的作者——Tea Vui Huang也是Mobcast的作者, 已經制作了一套處理工具將轉換Podcast到一個java Midlet中(用戶只需要在手機中調用javacast無線下載這個j2me應用程序,並可以播放podcast)。這使那些podcasters們通過簡單的增加一個下載這個midlet的鏈接就能很容易是獲得他們的podcast。

Huang的Mobcast,確實非常著名,幾個月以前,在我寫toodouPodcastMidlet時就看過許多人介紹過他,但是就是連不上http://www.geocities.com/tvhuangsg/mobcast/這個地址,所以一直未睹真容。

轉換各種格式的video為3gp,轉換各種格式的audio為amr,這些在開源軟件mplayer手下是隨手拈來,只需要看懂mplayer的各種參數即可做到了。所以拜mplayer所賜,我也能夠制作手機看交通實況錄像,都要感謝那些mplayer的開發人員!

"移動收聽必須對中斷事件進行管理",這個確實需要考慮。當進入Paused狀態時,需要通知播放線程暫停,同時連接線程暫時就不要去抓取服務器的媒體數據了;等界面切換回來後,播放線程繼續replay,連接線程繼續下載音樂。

斑竹說“可以通過人工(或者用程序)將文件分割後部署放到服務器上來解決”,我想也是,簡單的文件分割是不夠的,或者說僅僅適合於wav這種原始數據格式。應該事先將音樂文件用mencoder分解成一段一段的音樂文件放在服務器上,mencoder將處理每一段的格式問題保證能獨立播放,這樣手機下載起來只需要按照編號一段一段地下載即可,服務器不再需要運算和添加頭信息。

美中不足,如果兩個player切換播放,中間會有一個卡啪聲。

cleverpig said“有興趣的話可以看jffmpeg,是一種能夠處理音頻視頻的java媒體框架。

”以及“想了一下,提出一個“移動音頻流網關”的想法:可以使用服務器采用“實時”轉化格式的方式,將mp3、wav等格式音頻轉換為amr格式,當然也可以做分段,無論音頻源是什麼(甚至是podcast)都可以下載到手機上收聽。但這樣做的話,服務器的負載是個問題,盡管已用采集過的音頻源不用再次處理。

其實,我原來寫的toodouPodcast就是這麼一個概念,由於那些播客們提供的音樂格式不符合手機播放,所以我都用toodouPodcast這麼個java web service調用ffmpeg工具進行音頻轉換。轉換格式,確實是一個很費CPU資源的事情,而且時間很長,如果用戶多的話,對服務器壓力極大。

那麼現在做做分段也不錯,這樣,更適合手機用戶。

Jffmpeg應該是對ffmpeg這個C編寫的工具的Java封裝。

另一個封裝的是

http://fobs.sourceforge.net/

FOBS, the C++ & JMF wrapper for ffmpeg.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved