最近打算利用業余時間,編寫一個Android的網絡收音機。因為我自己偶爾也喜歡聽聽廣播,所以打算用業余時間編寫一個網絡版收音機。說起收音機,其實在工作中已經編寫過一個,不過那個收音機是需要硬件支持,也就是說需要有特定的收音機芯片才可以使用。因為這個要跟芯片通信,還涉及通信協議。所以無法通用,手機上更加使用不了。所以才打算編寫一個網絡版的收音機。
因為這個項目打算利用業余空閑時間來做,所以進度可能會比較慢一些,目前想法是把它做得完善一些,網上有關網絡收音機的開源項目貌似很少,我找了一下,沒發現有成型的項目。等我把程序框架和基本功能實現了,打算把這個項目做成開源項目。下面是目前實現了簡單的播放測試功能界面,這個只是測試用的第一版,后面會根據功能模塊增加進行調整。
(PS:新建的QQ群,有興趣可以加入一起討論:Android群:322599434)
1、網絡接收模塊
做網絡收音機最核心的功能模塊就是如何接收解析網絡數據,目前網絡電台的廣播協議主要是使用了mms、rtsp、http等多媒體流。Android上面對這些流媒體支持實在是不怎么樣,不知道是不是競爭對手的原因,畢竟mms是微軟的標准。因此只能找第三方庫實現,最后選了兩種方案:第一使用VLC播放器的解碼庫。前面我也寫了一篇編譯VLC的文章。不過還沒時間分析VLC使用和播放核心。第二種是使用目前開放的第三方庫。最后我暫時選了Vitamio作為解碼庫。
2、功能需求
- 支持mms、rtsp、http多媒體流播放
- 支持國內絕大部分可以播放的網絡電台以及國外部分著名電台
- 支持收藏電台
- 支持電台錄音保存
- 支持音效調節
3、UI設計規划
- 打算使用側滑欄實現電台列表
- 使用多級列表實現電台列表管理
- UI界面和數據分離,界面數據由XML提供
- 實現動態音效調節界面
4、開發計划
- 2013-7月:實現播放界面、電台列表、播放管理、后台播放
- 2013-8月:實現收藏電台、電台錄音、音效調節
- 2013-9月:后續規則中。。。
5、后語
目前的UI還比較粗糙,界面還沒有仔細進行調節,只是為了測試播放電台功能,先把功能加上去。后續會繼續完善,播放部分模塊現在還在調試,打算把播放部分編寫成獨立的模塊,降低代碼的耦合度方便以后更換播放和解碼核心代碼。界面部分盡量獨立出來。
雖然自己已經做過很多Android方面的程序,不過都是基於工作上的開發。自己開發一個業余項目還是第一次,所以希望能把這項目做得完善點,不過功能上不會加入太多其他不相關的東西進去,現在Android市場上的軟件,一個軟件集成太多不相關的東西,用着復雜,也浪費手機資源。這個收音機只會加入收音機相關功能,而且盡量做到簡潔易用。大家如果有這方面興趣,可以提提意見,看希望有什么功能。
目前我本身的工作很忙,在開發一個新項目,經常要加班,回到家已經10點了。所以只能業余晚上回去才有時間做,所以進度安排比較慢。后續會把開發過程寫成一個系列博客,用到的技術也會進行 一些分析講解。
Edited by mythou
原創博文,轉載請標明出處:http://www.cnblogs.com/mythou/p/3189184.html