Android 網路電台的一種實現方案

來源:互聯網
上載者:User
隨著電子產品的飛速發展,廣播電台幾乎已經遠離了人們的娛樂生活,但是近年來由於網路電台的興起,廣播電台又逐漸有了市場,手機上如果有一個網路電台軟體,使用率應該是比較高的。目前的主流智能手機平台中,iphone和 symbian都已經有了這類軟體,android平台雖然推出的時間不是很長,但是也已經有這類軟體了,最近我也正在Android上做這方面的工作,下面就把我的一些經驗介紹一下。   網路電台種類  目前的網路電台網站一般是基於以下三種協議的:  mms、rtsp、http  其中mms是微軟公司提出的網路流媒體協議,通常採用wma格式的檔案,Android現在還不支援這種協議,也不支援wma格式,原因比較明顯,競爭者嘛。  rtsp是RealNetworks公司提出的,Android是支援這種協議的,但是這種協議通常採用rm格式的檔案,Android是不支援的。  http協議Android是肯定支援的,而且這種協議一般採用mp3的檔案格式,Android也支援。  綜上,我們要在Android上開發網路電台軟體,那麼只能選擇http協議 mp3格式的網路電台網站,這樣的網站主要包括shoutcast和icecast兩大類。這兩類有微小差別,基本上是相同的,下面主要以 shoutcast為主進行說明。  MediaPlayer  熟悉Android的人可能都知道有MediaPlayer這樣一個類,用於媒體播放,而且這個類是支援流媒體播放的,這個類支援的協議包括rtsp、http等,但是我們還不能直接用這個類來播放網路電台,主要有兩個原因:  1.上面提到的shoutcast電台並不是直接採用http協議,MediaPlayer無法正常串連到shoutcast電台  2.MediaPlayer 能夠正常解析的URL必須是http://............/*.*的形式,也就是說url中必須包括檔案名稱,shoutcast電台的url不符合這樣的形式.  因此需要做一些轉換的工作。  shoutcast協議  上面已經提到,shoutcast網路電台是採用http協議的,其實這種說法並不準確,shoutcast電台採用的是shoutcast協議,這種協議與http略有不同,用戶端與伺服器間通訊過程如下:  向伺服器發送GET請求,內容如下:  HTTP/1.0   User-Agent:AndroidInternetRadio   Accept:audio/mpeg   伺服器端返回如下:  ICY 200 OK (signifying that the server was successful)〖黑軟手機資訊頻道〗    icy-notice1:This stream requires Winamp(redundant notice)   Activity App畫面部分代碼  SC Client 通過shoutcast協議串連網路電台,擷取電台音頻資料流  HTTP Server 提供http串連,將SCClient接收到的音頻資料轉寄給MediaPlayer類  MediaPlayer 音頻播放類,通過訪問http://127.0.0.1/a.mp3:port 與HTTPServer建立串連擷取資料流  RadioServer 網路電台伺服器  在Android上開發網路收音機,核心部分在於將shoutcast協議的資料流轉換為MediaPlayer類可播放的形式,也就是中的SCClient和HTTPServer,本文只是介紹了大體實現方案,具體編碼中還會有一些細節問題(例如MediaPlayer串連HTTPServer時,需要有一個contentlenth,這個值應該指定為無窮大)需要解決。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.