getid3:从远程服务器下载完整的mp3数据

时间:2017-11-27 02:53:05

标签: php mp3 getid3

我正在使用getid3从远程网址获取文件大小和持续时间。 <?php $filename = tempnam('/tmp','getid3'); if (file_put_contents($filename,file_get_contents('http://feeds.soundcloud.com/stream/336401044-scott-johnson-27-tms-1314-pm.mp3', false, null, 0, 32768))) { if (require_once('id3/getid3.php')) { $getID3 = new getID3; $ThisFileInfo = $getID3->analyze($filename); echo '<pre>'.print_r($ThisFileInfo, true).'</pre>'; } unlink($filename); };?> 不适用于远程URL,因此解决方法是将mp3下载到临时位置,读取数据然后将其删除。

代码:

lua_call

我的问题是它只下载了mp3文件的第一个32768kb,并且没有显示正确的文件大小(显示为最大32768)或文件的正确持续时间。如果我增加最大大小,代码将崩溃。

有没有办法下载完整的mp3或找到一种方法来获得合适的标题大小而无需下载完整的文件?

1 个答案:

答案 0 :(得分:1)

ID3v1标签位于文件末尾,而不是开头。因此,在下载文件末尾的一部分(使用cURL完成范围请求)或下载整个文件之前,您将无法读取它们。

如果您想要ID3v2,那么它们将位于文件的开头。