getID3:从远程服务器下载完整的MP3数据



我正在使用 getid3获取文件大小和远程URL的时间持续时间。getid3与远程URL不起作用,因此工作要解决的是将MP3下载到临时位置,读取数据然后删除数据。

代码:

<?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);
};?>

我的问题是,它仅下载MP3文件的前32768KB,并且不会显示正确的文件(显示为最大32768)或文件的正确时间。如果我增加最大尺寸,代码将崩溃。

是否有一种方法可以下载完整的mp3或找到不下载完整文件的适当标头大小的方法?

id3v1标签在文件的末尾,而不是开始。因此,在下载文件末尾的一部分(使用卷发完成的范围请求)或下载整个文件之前,您将无法阅读它们。

如果您想要ID3V2,则将在文件的开头。

最新更新