国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

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

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

更新時(shí)間:2022-05-13 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

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

?>

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

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        日韩精品一区二区三区在线观看 | 国产精品456| 91麻豆精品国产91久久久久久久久| 最新国产精品久久精品| 国产成人精品免费看| 中文字幕欧美日韩一区| 99精品视频一区二区三区| 国产精品另类一区| 91成人网在线| 欧美aaaaaa午夜精品| 欧美无砖砖区免费| 麻豆精品一区二区三区| 国产偷国产偷精品高清尤物| 色综合天天视频在线观看| 亚洲自拍偷拍麻豆| 色哟哟一区二区三区| 26uuu久久综合| 国精品**一区二区三区在线蜜桃| 日韩精品中文字幕在线不卡尤物| 国产一区视频在线看| 国产精品国产精品国产专区不蜜| 欧美视频在线观看一区| 国产呦萝稀缺另类资源| 亚洲一区二区三区影院| 欧美一级高清片| 91视频com| 国内精品国产成人国产三级粉色 | 另类欧美日韩国产在线| 日韩欧美美女一区二区三区| 成人av资源网站| 午夜天堂影视香蕉久久| 欧美激情综合五月色丁香| 欧美亚日韩国产aⅴ精品中极品| 九九热在线视频观看这里只有精品| 国产精品美女视频| 欧美三片在线视频观看| 成人av午夜影院| 精品一区二区三区免费毛片爱| 亚洲男女一区二区三区| 日韩美女视频一区二区在线观看| 在线视频欧美区| 国产美女精品在线| 免费成人美女在线观看.| 欧美一区二区三区视频免费播放 | 蜜臀av一区二区| 国产精品嫩草影院av蜜臀| 欧美日韩国产免费| 成人三级伦理片| 日韩电影网1区2区| 一区二区三区在线不卡| 国产精品剧情在线亚洲| 欧美不卡在线视频| 欧美日韩不卡视频| 欧美亚洲一区三区| 色综合av在线| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品一区二区黑丝| 久久99久久99小草精品免视看| 亚洲精品在线观看网站| 欧美三片在线视频观看| 色欧美88888久久久久久影院| 久久久美女毛片| 日韩一区二区三区av| 欧美日本在线观看| 欧美日韩一区二区三区不卡| 一本到三区不卡视频| 97se亚洲国产综合自在线不卡| 国产成人精品亚洲午夜麻豆| 国产尤物一区二区| 粉嫩绯色av一区二区在线观看| 国产成人午夜精品影院观看视频 | 欧美经典一区二区| 老司机精品视频导航| 亚洲综合在线视频| 亚洲一二三四久久| 亚洲成av人片在线观看无码| 亚洲一区二区影院| 视频在线观看91| 开心九九激情九九欧美日韩精美视频电影 | 91精品麻豆日日躁夜夜躁| 欧美日韩一区二区三区四区| 在线不卡中文字幕| 久久亚洲一区二区三区四区| 中文字幕av一区二区三区| 强制捆绑调教一区二区| 亚洲成人黄色小说| 偷窥少妇高潮呻吟av久久免费| 天天射综合影视| 久草在线在线精品观看| 成人精品鲁一区一区二区| 91在线视频观看| 欧美日韩在线观看一区二区 | 国产a视频精品免费观看| 97久久超碰国产精品电影| 在线亚洲一区观看| 精品成人一区二区三区四区| 日韩久久精品一区| 亚洲欧洲国产专区| 青青草视频一区| 成人av在线影院| 日韩视频免费观看高清在线视频| 国产无遮挡一区二区三区毛片日本 | 国产精品一二三在| 国产**成人网毛片九色| 欧美日韩在线精品一区二区三区激情 | 日本一区二区综合亚洲| 亚洲成av人**亚洲成av**| 国产酒店精品激情| 欧美日本一区二区三区四区| 中文字幕不卡的av| 狠狠色丁香婷婷综合久久片| 欧美三级视频在线观看| 国产精品水嫩水嫩| 美女在线视频一区| 91影院在线观看| 天天操天天色综合| 99国产精品国产精品毛片| 不卡视频在线观看| 欧美日韩高清在线| 国产精品丝袜黑色高跟| 黑人精品欧美一区二区蜜桃| 91精品国产一区二区三区蜜臀| 亚洲欧美在线视频观看| 韩国v欧美v日本v亚洲v| 欧美人与性动xxxx| 亚洲精品成人少妇| www..com久久爱| 亚洲国产精品二十页| 久久国产夜色精品鲁鲁99| 欧美日韩亚洲综合一区 | 亚洲精品免费一二三区| 老色鬼精品视频在线观看播放| 在线欧美小视频| 精品久久久久一区| 免费成人av在线| 欧美久久久久久久久久| 一区二区欧美在线观看| 99精品视频在线观看| 亚洲欧洲日韩综合一区二区| 成人激情免费网站| 国产蜜臀97一区二区三区 | 久久99精品国产91久久来源| 欧美巨大另类极品videosbest | 欧美日韩高清一区二区| 中文字幕日本不卡| 粉嫩一区二区三区在线看| 91国内精品野花午夜精品| 亚洲欧洲国产专区| av在线播放成人| 中文字幕在线不卡| 91麻豆免费在线观看| 亚洲自拍另类综合| 欧美日产国产精品| 欧美a一区二区| 久久久亚洲综合| k8久久久一区二区三区| 一区二区三区中文免费| 欧美日韩精品欧美日韩精品一| 亚洲激情图片一区| 欧美亚洲图片小说| 欧美aⅴ一区二区三区视频| 久久久久久久性| 91蝌蚪porny九色| 亚洲成人中文在线| 久久在线免费观看| 97精品久久久午夜一区二区三区| 亚洲成人av中文| 337p粉嫩大胆色噜噜噜噜亚洲| 成人免费av网站| 一区二区在线观看视频| 欧美一区二区在线免费播放| 国产精品88av| 蜜臀精品一区二区三区在线观看 | 午夜激情久久久| wwww国产精品欧美| 色噜噜狠狠色综合中国| 精品一区二区精品| 亚洲激情在线激情| 亚洲国产高清aⅴ视频| 欧美二区在线观看| 成人午夜免费视频| 蜜臀av国产精品久久久久| 欧美国产成人精品| 欧美日韩一区中文字幕| 粉嫩av一区二区三区粉嫩| 日韩**一区毛片| 亚洲天堂av一区| 久久一二三国产| 日韩午夜精品电影| 色婷婷激情一区二区三区| 蜜桃视频免费观看一区| 亚洲天堂福利av| 久久久青草青青国产亚洲免观| 欧美在线|欧美| 成人免费毛片片v| 久久影院午夜片一区| 欧美日韩精品欧美日韩精品| 色悠悠久久综合| 亚洲视频一区二区在线观看| 国产精品成人一区二区艾草 |