在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

一個解析mp3 ID3 tag 與 MPEG 信息的類(來自zend.com),實際應用請看這里http://feifei2.bjedu.gov.cn...

一個解析mp3 ID3 tag 與 MPEG 信息的類(來自zend.com),實際應用請看這里http://feifei2.bjedu.gov.cn...

更新時間:2022-05-13 文章作者:未知 信息來源:網絡 閱讀次數:

<?php
/*
 * MP3 class
 *
 * rel. 0.1
 *
 * Copyright (c) 2000 Sumatra Solutions srlhttp://www.sumatrasolutions.com
 *Ludovico Magnocavalloludo@sumatrasolutions.com
 *
 * License type: GNU GPL http://www.gnu.org/copyleft/gpl.html
 *
 *Heavily inspired by
 *Perl Apache::MP3 module (L. Stein) -- great module to create an apache-based mp3 server
 *Perl MP3::Info (C. Nandor) -- very complicated, hard stuff but useful
 *Java class de.vdheide.mp3 (J. Vonderheide) -- great stuff, easy to read, had to debug synchronize() method
 *
 * ID3v2 tags support not completed
 *
 * MP3 header reference at http://www.mp3-tech.org/
 *
 * // quick start:
 * $mp3 = new MP3($myfilepath);
 * $mp3->get_info();// file info in $mp3->info array
 * $mp3->get_id3();// id3 info in $mp3->id3 array
 * $mp3->send_pls($HTTP_HOST)// uses physical path to file in playlist url
 * $mp3->stream()// streams file to browser
 *
 * $Id: mp3.php,v 1.10 2000/07/18 11:05:16 ludo Exp $
 *
 */
class MP3 {
var $id3_genres_array = array(
'Blues', 'Classic Rock', 'Country', 'Dance', 'Disco', 'Funk', 'Grunge', 'Hip-Hop', 'Jazz', 'Metal', 'New Age', 'Oldies', 'Other', 'Pop', 'R&B', 'Rap', 'Reggae', 'Rock', 'Techno', 'Industrial',
'Alternative', 'Ska', 'Death Metal', 'Pranks', 'Soundtrack', 'Euro-Techno', 'Ambient', 'Trip-Hop', 'Vocal', 'Jazz+Funk', 'Fusion', 'Trance', 'Classical', 'Instrumental', 'Acid', 'House',
'Game', 'Sound Clip', 'Gospel', 'Noise', 'AlternRock', 'Bass', 'Soul', 'Punk', 'Space', 'Meditative', 'Instrumental Pop', 'Instrumental Rock', 'Ethnic', 'Gothic', 'Darkwave',
'Techno-Industrial', 'Electronic', 'Pop-Folk', 'Eurodance', 'Dream', 'Southern Rock', 'Comedy', 'Cult', 'Gangsta', 'Top 40', 'Christian Rap', 'Pop/Funk', 'Jungle', 'Native American', 'Cabaret',
'New Wave', 'Psychadelic', 'Rave', 'Showtunes', 'Trailer', 'Lo-Fi', 'Tribal', 'Acid Punk', 'Acid Jazz', 'Polka', 'Retro', 'Musical', 'Rock & Roll', 'Hard Rock', 'Folk', 'Folk/Rock', 'National Folk',
'Swing', 'Fast Fusion', 'Bebob', 'Latin', 'Revival', 'Celtic', 'Bluegrass', 'Avantgarde', 'Gothic Rock', 'Progressive Rock', 'Psychedelic Rock', 'Symphonic Rock', 'Slow Rock', 'Big Band',
'Chorus', 'Easy Listening', 'Acoustic', 'Humour', 'Speech', 'Chanson', 'Opera', 'Chamber Music', 'Sonata', 'Symphony', 'Booty Bass', 'Primus', 'Porn Groove', 'Satire', 'Slow Jam', 'Club', 'Tango', 'Samba',
'Folklore', 'Ballad', 'Power Ballad', 'Rhythmic Soul', 'Freestyle', 'Duet', 'Punk Rock', 'Drum Solo', 'Acapella', 'Euro-house', 'Dance Hall'
);
var $info_bitrates = array(
1=>array(
1=>array( 0 => 0, 16 => 32, 32 => 64, 48 => 96, 64 => 128, 80 => 160, 96 => 192, 112 => 224, 128 => 256, 144 => 288, 160 => 320, 176 => 352, 192 => 384, 208 => 416, 224 => 448, 240 => false),
2=>array( 0 => 0, 16 => 32, 32 => 48, 48 => 56, 64 =>64, 80 =>80, 96 =>96, 112 => 112, 128 => 128, 144 => 160, 160 => 192, 176 => 224, 192 => 256, 208 => 320, 224 => 384, 240 => false),
3=>array( 0 => 0, 16 => 32, 32 => 40, 48 => 48, 64 =>56, 80 =>64, 96 =>80, 112 =>96, 128 => 112, 144 => 128, 160 => 160, 176 => 192, 192 => 224, 208 => 256, 224 => 320, 240 => false)
),
2=>array(
1=>array( 0 => 0, 16 => 32, 32 => 48, 48 => 56, 64 =>64, 80 => 80, 96 => 96, 112 => 112, 128 => 128, 144 => 144, 160 => 160, 176 => 176, 192 => 192, 208 => 224, 224 => 256, 240 => false),
2=>array( 0 => 0, 16 =>8, 32 => 16, 48 => 24, 64 =>32, 80 => 40, 96 => 48, 112 =>56, 128 =>64, 144 =>80, 160 =>96, 176 => 112, 192 => 128, 208 => 144, 224 => 160, 240 => false),
3=>array( 0 => 0, 16 =>8, 32 => 16, 48 => 24, 64 =>32, 80 => 40, 96 => 48, 112 =>56, 128 =>64, 144 =>80, 160 =>96, 176 => 112, 192 => 128, 208 => 144, 224 => 160, 240 => false)
),
);
var $info_versions = array(0 => "reserved", 1 => "MPEG Version 1", 2 => "MPEG Version 2", 2.5 => "MPEG Version 2.5");
var $info_layers = array("reserved", "Layer I", "Layer II", "Layer III");
var $info_sampling_rates = array(
0=>array(0 => false, 4 => false, 8 => false, 12 => false),
1=>array(0 => "44100 Hz", 4 => "48000 Hz", 8 => "32000 Hz", 12 => false),
2=>array(0 => "22050 Hz", 4 => "24000 Hz", 8 => "16000 Hz", 12 => false),
2.5=>array(0 => "11025 Hz", 4 => "12000 Hz", 8 => "8000 Hz", 12 => false),
);
var $info_channel_modes = array(0 => "stereo", 64 => "joint stereo", 128 => "dual channel", 192 => "single channel");
var $file = "";
var $fh = false;
var $error = false;
var $id3_parsed = false;
var $id3 = array(
/*"tag"=>"",
"title"=>"unknown",
"author"=>"unknown",
"album"=>"unknown",
"year"=>"unknown",
"comment"=>"unknown",
"genre_id"=>0,
"genre"=>"unknown"
*/);
var $url = "";
var $info = array();
 
function mp3($file, $exitonerror=true) {
if (file_exists($file)) {
$this->file = $file;
$this->fh = fopen($this->file,"r");
global $HTTP_HOST, $PHP_SELF;
$this->url = "http://$HTTP_HOST/$PHP_SELF";
} else {
$this->error = "No such file";
if ($exitonerror) $this->exitonerror();
}
}
function exitonerror() {
echo($this->error);
exit;
}
function set_id3($title = "", $author = "", $album = "", $year = "", $comment = "", $genre_id = 0) {
$this->error = false;
$this->wfh = fopen($this->file,"a");
fseek($this->wfh, -128, SEEK_END);
fwrite($this->wfh, pack("a3a30a30a30a4a30C1", "TAG", $title, $author, $album, $year, $comment, $genre_id), 128);
fclose($this->wfh);
}
function get_id3() {
$this->id3_parsed = true;
fseek($this->fh, -128, SEEK_END);
$line = fread($this->fh, 10000);
if (preg_match("/^TAG/", $line)) {
$this->id3 = unpack("a3tag/a30title/a30author/a30album/a4year/a30comment/C1genre_id", $line);
$this->id3["genre"] = $this->id3_genres_array[$this->id3]["genre_id"]];
return(true);
} else {
$this->error = "no idv3 tag found";
return(false);
}
}
// get_info() helper methods
function calculate_length($id3v2_tagsize = 0) {
$length = floor(($this->info["filesize"] - $id3v2_tagsize) / $this->info["bitrate"] * 0.008);
$min = floor($length / 60);
$min = strlen($min) == 1 ? "0$min" : $min;
$sec = $length % 60;
$sec = strlen($sec) == 1 ? "0$sec" : $sec;
return("$min:$sec");
}
function get_info() {
//$this->get_id3v2header();
$second = $this->synchronize();
//echo("2nd byte = $second <b>" . decbin($second) . "</b><br>");
$third = ord(fread($this->fh, 1));
$fourth = ord(fread($this->fh, 1));
$this->info["version_id"] = ($second & 16) > 0 ? ( ($second & 8) > 0 ? 1 : 2 ) : ( ($second & 8) > 0 ? 0 : 2.5 );
$this->info["version"] = $this->info_versions[ $this->info]["version_id"] ];
$this->info["layer_id"] = ($second & 4) > 0 ? ( ($second & 2) > 0 ? 1 : 2 ) : ( ($second & 2) > 0 ? 3 : 0 ); ;
$this->info["layer"] = $this->info_layers[ $this->info]["layer_id"] ];
$this->info["protection"] = ($second & 1) > 0 ? "no CRC" : "CRC";
$this->info["bitrate"] = $this->info_bitrates[ $this->info]["version_id"] ][ $this->info]["layer_id"] ][ ($third & 240) ];
$this->info["sampling_rate"] = $this->info_sampling_rates[ $this->info]["version_id"] ][ ($third & 12)];
$this->info["padding"] = ($third & 2) > 0 ? "on" : "off";
$this->info["private"] = ($third & 1) > 0 ? "on" : "off";
$this->info["channel_mode"] = $this->info_channel_modes[$fourth & 192];
$this->info["copyright"] = ($fourth & 8) > 0 ? "on" : "off";
$this->info["original"] = ($fourth & 4) > 0 ? "on" : "off";
$this->info["filesize"] = filesize($this->file);
$this->info["length"] = $this->calculate_length();
}
function synchronize() {
$finished = false;
rewind($this->fh);
while (!$finished) {
$skip = ord(fread($this->fh, 1));
//echo("inside synchronize() skip = $skip <b>" . decbin($skip) . "</b><br>");
while ($skip != 255 && !feof($this->fh)) {
$skip = ord(fread($this->fh, 1));
//echo("inside synchronize() skip = $skip <b>" . decbin($skip) . "</b><br>");
}
if (feof($this->fh)) {
$this->error("no info header found");
if ($exitonerror) $this->exitonerror();
}
$store = ord(fread($this->fh, 1));
//echo("inside synchronize() store = $store <b>" . decbin($store) . "</b><br>");
if ($store >= 225) {
$finished = true;
} else if (feof($this->fh)) {
$this->error("no info header found");
if ($exitonerror) $this->exitonerror();
}
}
return($store);
}
function get_id3v2header() {
$bytes = fread($this->fh, 3);
if ($bytes != "ID3") {
echo("no ID3 tag");
return(false);
}
// get major and minor versions
$major = fread($this->fh, 1);
$minor = fread($this->fh, 1);
echo("ID3v$major.$minor");
}
function stream() {
if (!$this->id3_parsed) {
$this->get_id3();
}
header("ICY 200 OK\r\n");
header("icy-notice1:This stream requires a shoutcast/icecast compatible player.<br>\r\n");
header("icy-notice2:php MP3 class<br>\r\n");
header("icy-name:" . (count($this->id3) > 0 ? $this->id3["title"] . " - " . $this->id3["author"] . " - " . $this->id3["album"] . " - " . $this->id3["year"] : $this->file) . "\r\n");
header("icy-genre:" . (count($this->id3) > 0 ? $this->id3["genre"] : "unspecified") . "\r\n");
header("icy-url:bbb\r\n");
header("icy-pub:1\r\n");
header("icy-br:320\r\n");
rewind($this->fh);
fpassthru($this->fh);
}
function send_playlist_header($numentries = 1) {
header("Content-Type: audio/mpegurl;");
echo("[playlist]\r\n\r\n");
echo("NumberOfEntries=$numentries\r\n");
}
function send_pls($server) {
$this->send_playlist_header();
$path = "/";
$path_array = explode("/", dirname($this->file));
while(list($key,$val) = each($path_array)) {
$path .= empty($val) ? "" : rawurlencode($val);
}
$path .= "/";
$file = rawurlencode(preg_replace("/\.mp3$/", "", basename($this->file)));
echo("File1=http://$server$path$file.mps\r\n");
}
function close() {
@fclose($this->fh);
}
}

?>

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 日韩中文字幕在线不卡| 香蕉视频网站入口| 午夜视频在线观| av动漫在线观看| 777久久久精品一区二区三区| 三级黄色片免费观看| 蜜臀一区二区三区精品免费视频| 三级4级全黄60分钟| 久久久精品在线视频| 日本www在线播放| 成人免费在线小视频| 亚欧无线一线二线三线区别| 成人黄色av片| 无码人妻h动漫| 国产成人精品视频ⅴa片软件竹菊| 久久久久免费看黄a片app| 尤物av无码色av无码| 男女视频一区二区三区| 亚洲人辣妹窥探嘘嘘| 日韩在线一区视频| 欧美日韩一级在线| 福利视频一二区| 久久精品99国产| 午夜大片在线观看| 日韩成人手机在线| caopor在线视频| 视频在线观看免费高清| 欧美美女黄色网| 女性女同性aⅴ免费观女性恋| 青青视频在线播放| 亚洲欧美日韩网站| 一女被多男玩喷潮视频| 波多结衣在线观看| 男人添女人荫蒂免费视频| 欧美亚洲另类色图| 日本三级中文字幕在线观看| 精品无码一区二区三区在线| 欧美日韩一区二区三区69堂| 热久久最新网址| 九九九在线观看视频| 日本精品福利视频| 伊人国产在线视频| 成人黄色大片网站| 午夜啪啪免费视频| 成年人网站大全| 成人av在线播放观看| 五月天亚洲视频| 欧美丰满熟妇bbbbbb百度| 91性高潮久久久久久久| 777米奇影视第四色| 青青在线免费视频| 午夜免费福利视频在线观看| www.射射射| 日本a在线天堂| 热久久久久久久久| 一区二区三区免费播放| 色综合久久久久无码专区| 懂色av粉嫩av蜜臀av| 天天干天天综合| 久久精品视频91| 69堂免费视频| 国产日产欧美视频| 青青草成人免费在线视频| 欧美日韩dvd| 99久re热视频精品98| 三级一区二区三区| 亚洲色图偷拍视频| 想看黄色一级片| 国产高清免费在线| 美女在线免费视频| 欧美日韩中文字幕在线播放| 成年丰满熟妇午夜免费视频 | aaa免费在线观看| 污污的网站18| www.国产视频.com| 欧美成人乱码一二三四区免费| 九九热在线免费| 色婷婷综合网站| 懂色av一区二区三区四区五区| 亚洲天堂网站在线| av电影一区二区三区| 欧美日韩dvd| 日本中文字幕网址| av片中文字幕| 国产免费中文字幕| 91免费版看片| 97国产精东麻豆人妻电影| 欧美精品成人网| 天天av天天操| 国产一区二区三区播放| 欧美日韩一道本| 99视频在线视频| 今天免费高清在线观看国语| 日韩激情视频一区二区| aⅴ在线免费观看| wwwwwxxxx日本| www..com日韩| 中文字幕日韩综合| 男女日批视频在线观看| 99视频在线视频| avav在线播放| 99热手机在线| 国产一区 在线播放| 欧美成人黑人猛交| 国产精品88久久久久久妇女 | 天天干天天草天天| 乱熟女高潮一区二区在线| 欧美一级黄色影院| 国产一级大片免费看| 9l视频白拍9色9l视频| 国产手机免费视频| 国产九九在线观看| 六月丁香婷婷在线| 久久久久久久久久伊人| 91制片厂毛片| 免费毛片网站在线观看| www.久久com| 超碰超碰在线观看| 国产精品-区区久久久狼| 国产精品国三级国产av| 日韩a一级欧美一级| 亚洲三级视频网站| 欧美女人性生活视频| 秋霞无码一区二区| 日本中文字幕一级片| 婷婷激情小说网| 亚洲第一天堂久久| 2025韩国理伦片在线观看| 成人免费观看视频在线观看| 给我免费播放片在线观看| 一级全黄肉体裸体全过程| 亚洲一区精品视频在线观看| 久久九九国产视频| 999香蕉视频| 已婚少妇美妙人妻系列| 免费观看成人网| 国产精品第12页| 黄色三级视频在线| 日韩大片一区二区| 国产又粗又长又大的视频| 999精品网站| 欧美第一页浮力影院| 午夜视频在线观| 亚洲国产精品影视| 4444亚洲人成无码网在线观看| 国产欧美久久久久| 欧美亚洲另类色图| 久久精品视频91| 成人不卡免费视频| 亚洲小说欧美另类激情| 大陆极品少妇内射aaaaaa| 东北少妇不带套对白| 国产最新免费视频| 成年人视频大全| 国产性生活一级片| 一级特黄妇女高潮| 欧美成人高潮一二区在线看| 日韩小视频在线播放| 黄色高清无遮挡| 超碰成人在线免费观看| 久艹在线免费观看| www.日日操| 乱子伦一区二区| 黄色a级片免费| 91精品国产吴梦梦| 国产一级不卡毛片| 成年人视频大全| www.xxx亚洲| 欧美另类videos| 无码少妇一区二区三区芒果| 99精品视频免费版的特色功能| 在线观看成人免费| 天美星空大象mv在线观看视频| 特级西西444| 一区二区三区网址| 丁香花在线影院观看在线播放| 国产三级国产精品国产专区50| 路边理发店露脸熟妇泻火| www日韩在线观看| 轻点好疼好大好爽视频| 日本超碰在线观看| 超碰97人人射妻| 国产欧美久久久久| 天堂v在线视频| 日韩av手机版| 日本三级免费观看| 日本阿v视频在线观看| 在线免费黄色网| 亚洲成色www.777999| 欧美一区二区三区爽大粗免费| 黄色一级片免费播放| 亚欧在线免费观看| 欧美亚洲国产成人| 日韩网站在线免费观看| 2021狠狠干| 黄色影视在线观看| 中文字幕在线视频一区二区| 亚洲午夜激情影院| 中文字幕国产免费| 男人的天堂日韩|