php 获取音频里的信息,使用PHP从音频流中拉出信息

这是一个SHOUTcast流,是的,这是可能的。它与ID3标签绝对无关。以前我写了一个脚本来做这个,但是找不到它。就在上个星期,我帮助了另一个有相当完整脚本的人做同样的事情,但是我不能把源代码发给它,因为它不是我的。不过,如果您在

brad@musatcha.com发电子邮件,我会与他联系。

无论如何,这里是如何自己做的:

您需要做的第一件事是直接连接到服务器。不要使用HTTP。那么你可能会使用cURL,但是它的价值可能会更加麻烦。你用fsockopen()(doc)连接到它。确保使用正确的端口。另请注意,许多Web主机将阻止大量端口,但通常可以使用端口80.幸运的是,所有AOL托管的SHOUTcast流都使用端口80。

现在,像你的客户一样提出你的要求。

GET /无论HTTP / 1.0

但是,在发送< CrLf>< CrLf>之前,请包括下一个标题!

冰爽元数据:1

这告诉服务器你想要元数据。现在,发送一对< CrLf&gt ;. 好的,服务器会响应一堆头文件,然后开始发送数据。那些标题将是一个冰冷的元素:8192或类似的。那8192是元间隔。这很重要,而且真正是您需要的唯一价值。通常是8192,但并不总是,所以一定要真正读取这个值! 基本上这意味着,您将获得8192字节的MP3数据,然后获得一大堆元数据,其次是8192字节的MP3数据,后跟一组元数据。 读取8192字节的数据(确保您不包括此计数中的标题),丢弃它们,然后读取下一个字节。该字节是元数据的第一个字节,表示元数据的时间长度。取该字节的值(具有ord()(doc)的实际字节),并将其乘以16.结果是要为元数据读取的字节数。将这些字节数字读入一个字符串变量中,以供使用。

接下来,修剪此变量的值。为什么?因为字符串在末尾用0x0填充(使其适合16个字节的倍数),而trim()(doc)则为我们照顾。

你会留下这样的东西:

StreamTitle =’Awesome Trance Mix – DI.fm’; StreamUrl =”

我会让你选择你的方法来解析这个。就我个人而言,我可能只是以2的限制分开,但要注意包含的标题。我不知道转义字符的方法是什么。一点实验应该帮助你。

完成后,别忘了断开服务器的连接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值