使用PHP 從音訊串流中提取曲目資訊
確定使用PHP 從音訊串流中提取曲目資訊是否可行會引導我們到stream_get_transports函數。然而,對於那些透過 fsockopen() 遇到 HTTP 傳輸支援限制的人來說,需要探索替代方法。
深入研究元資料擷取
幸運的是,從音訊串流是可能的,特別是在 SHOUTcast 串流的情況下。此操作與提取 ID3 標籤不同,需要獨特的方法。
建立連線
透過 fsockopen() 直接連接到伺服器,指定適當的連接埠(例如,連接埠 80)。使用 HTTP 請求與伺服器通信,並包含 Icy-MetaData:1 標頭來請求元資料。
了解元間隔
伺服器將使用包含以下內容的標頭進行回應icy-metaint 值,表示元間隔。這個間隔決定了流中元資料包的頻率。
讀取和解析元資料
丟棄 8192 位元組的 MP3 數據,然後讀取第一位元組,這表示元資料包的長度。將此位元組值乘以 16 以確定要讀取元資料的位元組數。
分割和檢索資訊
修剪元資料字串以刪除填充。解析字串,在「;」處分割它分隔符,用於提取曲目標題和流 URL 等資訊。
可選資源
有關SHOUTcast 元資料擷取的進一步協助,請參閱外部資源,例如https://web.archive.org/web/20191121035806/ http://www.smackfu.com/stuff/programming/shoutcast.html。
以上是PHP 可以從音訊串流中提取曲目資訊嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!