获取mp3文件信息

字体大小: 中小 标准 ->行高大小: 标准
<?php
$dir_name = "G:\\mp3\\";

$dir = dir($dir_name);

while ($f = $dir->read()) {
        if (preg_match('/\.mp3$/i', $f)) {
                $info = parse_mp3($f);
                print_r($info);
        }
}

function parse_mp3($file_name) {
        
        $info_struct = array (
                        "title"   => array(3,  33, 'trim'),
                        "artist"  => array(33,  63, 'trim'),
                        "album"   => array(63,  93, 'trim'),
                        "year"    => array(93,  97, 'trim'),
                        "comment" => array(97, 126, 'trim'),
                        "genre"   => array(127, 128, 'genre_name')
        );
        $fp = fopen($file_name, "rb") or die("cannot open file!");
        fseek($fp, -128, SEEK_END);
        $mp3_info = array();
        $tag = fread($fp, 3);
        if ($tag == 'TAG') {
                #fseek($fp, -125, SEEK_END);
                foreach ($info_struct as $key => $arr) {
                                fseek($fp, $arr[0] - 128, SEEK_END);
                                $mp3_info[$key] = call_user_func($arr[2], fread($fp, $arr[1] - $arr[0]));                        
                }
        }
        fclose($fp);
        return $mp3_info;
}

//file genre name accoding by genre number;
function genre_name($genre) {
        $genre = ord($genre);
        $genre_arr = array (
                '8'         =>        'Jazz',
                '10' => 'New Age ',
                '11' => 'Oldies ',
                '12' => 'Other',
                '13' => 'Pop',
                '14' => 'R&B',
                '15' => 'Rap',
                '16' => 'Reggae',
                '17' => 'Rock'
        );

        if (array_key_exists($genre, $genre_arr)) {
                return $genre_arr[$genre];
        }
        else {
                return "Unknow";
        }
}
?>

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/67187.html