从MP3 PHP获取专辑封面

时间:2012-04-13 17:30:24

标签: php html5 mp3 id3

我正在使用此代码获取MP3文件的ID3信息。

    <?php
    class CMP3File { 
     var $title;var $artist;var $album;var $year;var $comment;var $genre; 
     function getid3 ($file) { 
      if (file_exists($file)) { 
       $id_start=filesize($file)-128; 
       $fp=fopen($file,"r"); 
       fseek($fp,$id_start); 
       $tag=fread($fp,3); 
       if ($tag == "TAG") { 
        $this->title=fread($fp,30); 
        $this->artist=fread($fp,30); 
        $this->album=fread($fp,30); 
        $this->year=fread($fp,4); 
        $this->comment=fread($fp,30); 
        $this->genre=fread($fp,1); 
        fclose($fp); 
        return true; 
       } else { 
        fclose($fp); 
        return false; 
       } 
      } else { return false; } 
     } 
    } 
    ?>

然后我使用此代码来调用它。

     include ("CMP3File.php"); 
     $filename="music_file.mp3"; 
     $mp3file=new CMP3File; 
     $mp3file->getid3($filename); 
     echo "Title: $mp3file->title<br>\n"; 
     echo "Artist: $mp3file->artist<br>\n"; 
     echo "Album: $mp3file->album<br>\n"; 
     echo "Year: $mp3file->year<br>\n"; 
     echo "Comment: $mp3file->comment<br>\n"; 
     echo "Genre: " . Ord($mp3file->genre) . "<br>\n";  

有没有办法让专辑封面成为一个图像?

1 个答案:

答案 0 :(得分:3)

您正在从文件中读取ID3v1标记,该标记不支持嵌入图像。要从ID3v2标签中读取专辑封面,我建议使用现有的库,例如KTagLib

或者,您可以通过查看ID3v2 spec

来提出自己的实施方案