簡體   English   中英

如何從shoutcast流中檢索元數據時如何獲知新的歌曲信息

[英]how to get informed of new song info while retrieving metadata from shoutcast stream

背景:我正在使用雙緩沖方法對html shoutcast進行流媒體廣播。 我使用http://www.smackfu.com/stuff/programming/shoutcast.html從流中獲取元數據信息

問題我有三個問題。
1-我已經使用urlconnection和inputstream收聽廣播。 我不想打開新的連接來檢索元數據。 但是,當我試圖從同一個輸入流中獲得兩者時,我再也聽不到廣播了。 我想這是不可能的,我必須使用兩個單獨的連接? 這對性能不好嗎?

2-當應用程序啟動時,我會檢索當前歌曲的信息。 沒問題。 但是,當歌曲更改時,如何通知我。 據說服務器會在歌曲改變時發送信息。 但是我正在啟動URLconnection,獲取輸入流,檢索元數據並關閉連接。 我不明白服務器該如何通知我? 我應該保持連接打開嗎?

3-最后一個問題。 在Android 2.2之前無法進行AFAIK漸進式流式傳輸。 這僅適用於http嗎? 如果協議是rtsp,我可以在android 2.2之前進行漸進式流傳輸嗎? 有人請確定清楚嗎?

非常感謝,

  1. 您不應該為元數據打開新的連接。 元數據已集成到MP3流中(所有這些都在您發布的鏈接中進行了描述)。
  2. 如果顯然關閉了連接,則您將不再能夠接收MP3流或元數據。
  3. 請參閱: 使用MediaPlayer在Android中從URL傳輸音頻?

您必須記住icy-metaint標頭字段中的數字。

從流中收到那么多字節(發送給音頻解碼器)后,您必須期望元數據部分並讀取它(也不要將這些數據發送至音頻解碼器)。 然后,您將再次從流中接收編碼的音頻,並繼續執行在冰冷的字節之后定期讀取元數據的過程。

這意味着服務器會定期發送元數據(有關藝術家/歌曲名稱的信息),並且您的代碼必須將輸入流拆分為音頻和元數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM