私はgetid3
を使用して、リモートURLからファイルサイズと期間を取得しています。 getid3
はリモートURLでは機能しません。一時的な場所にmp3をダウンロードし、データを読み込んでから削除してください。getid3:リモートサーバーからフル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ファイルの最初の32768キロバイトをダウンロードし、それが正しいファイルサイズ(最大32768として番組)や正確な継続時間が表示されないということですファイルの最大サイズを大きくすると、コードがクラッシュします。
完全なmp3をダウンロードする方法、または完全なファイルをダウンロードせずに適切なヘッダーサイズを取得する方法がありますか?
取得しようとしているID3のバージョンは何ですか?おそらく32KB以上必要ですが、これ以上は必要ありません。 32Kを超えるコードがクラッシュするのはなぜですか?私は 'file_get_contents'よりもcURLを使いたいですし、よく動作するサーバから範囲リクエストを行うことができます。 – Brad
最新のバージョン(1.9.5)と私は正しいファイルサイズと時間を得るために20 MBを使用しなければなりません。私はcURLに精通していないので、例を挙げることができますか? –
http://php.net/manual/en/curl.examples-basic.php – Brad