| |
|
|
| | здравствуйте.
тут нашел кусок кода который по идее должен выводить инфу о mp3 файле ...
раньше с этим дела не имел поэтому плохо предстовляю как это происходит..
вот код:
<?php
function formattime($time) {
$hours = floor(($time/60)/60);
$minutes = floor(($time / 60)-($hours*60));
$seconds = floor($time - (($minutes * 60)+(($hours*60)*60)));
if ($seconds<10) {$seconds="0".$seconds;}
if ($minutes<10) {$minutes="0".$minutes;}
if ($hours!=0) {
if ($hours<10) {
$hours="0".$hours;
}
return $hours.':'.$minutes.':'.$seconds.conv;
}
else {
return $minutes.':'.$seconds;
}
}
function bitrate1($mysting)
{
$mysting=str_replace(0x10,32,$mysting);
$mysting=str_replace(0x20,40,$mysting);
$mysting=str_replace(0x30,48,$mysting);
$mysting=str_replace(0x40,56,$mysting);
$mysting=str_replace(0x50,64,$mysting);
$mysting=str_replace(0x60,80,$mysting);
$mysting=str_replace(0x70,96,$mysting);
$mysting=str_replace(0x80,112,$mysting);
$mysting=str_replace(0x90,128,$mysting);
$mysting=str_replace(0xA0,160,$mysting);
$mysting=str_replace(0xB0,192,$mysting);
$mysting=str_replace(0xC0,224,$mysting);
$mysting=str_replace(0xD0,256,$mysting);
$mysting=str_replace(0xE0,320,$mysting);
return $mysting;
}
function bitrate2($mysting)
{
$mysting=str_replace(0x10,8,$mysting);
$mysting=str_replace(0x20,16,$mysting);
$mysting=str_replace(0x30,24,$mysting);
$mysting=str_replace(0x40,32,$mysting);
$mysting=str_replace(0x50,40,$mysting);
$mysting=str_replace(0x60,48,$mysting);
$mysting=str_replace(0x70,56,$mysting);
$mysting=str_replace(0x80,64,$mysting);
$mysting=str_replace(0x90,80,$mysting);
$mysting=str_replace(0xA0,96,$mysting);
$mysting=str_replace(0xB0,112,$mysting);
$mysting=str_replace(0xC0,128,$mysting);
$mysting=str_replace(0xD0,144,$mysting);
$mysting=str_replace(0xE0,160,$mysting);
return $mysting;
}
function freq1($mysting)
{
$mysting=str_replace(0x00,44.1,$mysting);
$mysting=str_replace(0x04,48,$mysting);
$mysting=str_replace(0x08,32,$mysting);
return $mysting;
}
function freq2($mysting)
{
$mysting=str_replace(0x00,22.05,$mysting);
$mysting=str_replace(0x04,24,$mysting);
$mysting=str_replace(0x08,16,$mysting);
return $mysting;
}
function misc($mysting)
{
$mysting=str_replace(0x00,'Стерео',$mysting);
$mysting=str_replace(0x40,'Стерео',$mysting);
$mysting=str_replace(0x60,'Двухканальный',$mysting);
$mysting=str_replace(0x80,'Моно',$mysting);
return $mysting;
}
function getinfo($filename) {
$done=false;
$file=fopen("$filename","r");
$point=0;
while ((!feof($file)) and (!$done)){
fseek($file, $point);
$data=fread($file,2);
$data=unpack ("Cint/Cint2",$data);
if (($data[int] == 0xFF) and ($data[int2] < 0xFF) and ($data[int2]>=0xF0)) {
$done=true;
$id3=$point;
}
$point++;
}
$filesize=filesize($filename);
$filesize=$filesize - $id3;
fseek($file, $id3);
$bindata = fread($file, 4);
fclose($file);
if(! ($bindata = unpack('nint/C2', $bindata)) ) return false;
if (($bindata[int] & 0xFFF0) != 0xFFF0) return false;
if (($bindata[int] & 0x08) == 0x08) {
$info[bitrate] = bitrate1($bindata[1] & 0xF0);
$info[frequency] = freq1($bindata[1] & 0x0C);
$info[stereo] = misc($bindata[2] & 0xC0);
$info[time] = ($filesize / (bitrate1($bindata[1] & 0xF0) * 1000 / 8));
}
if (($bindata[int] & 0x08) == 0x00) {
$info[bitrate] = bitrate2($bindata[1] & 0xF0);
$info[frequency] = freq2($bindata[1] & 0x0C);
$info[stereo] = misc($bindata[2] & 0xC0);
$info[time] = $filesize / (bitrate2($bindata[1] & 0xF0) * 1000 / 8);
}
return $info;
}
?>
|
как его применить?
и нужна ли какая нибудь дополнительная библеотека?
P,S, по возможности прошу не посылать на другие ресурсы т.к. я через мобилу в инете , трафик на вес золота ;)) | |
| |
|
|
| |
 20.7 Кб |
|
| |
для: skor
(05.10.2006 в 21:31)
| | | Класс id3.class.php | |
| |
|
|
| |
|
|
| |
для: valenok
(05.10.2006 в 21:39)
| | | мне это ничего не прояснило... гг )) | |
| |
|
|
| |
|
|
| |
для: valenok
(05.10.2006 в 21:39)
| | | не мог бы поподробней обьяснить как это заставить работать? | |
| |
|
|
| |
|
|
| |
для: skor
(06.10.2006 в 14:32)
| | | Во-первых, тебе прикрепили файл, где про id.class.php
А во вторых, очень функциональная штука - getid3... можно выполнить, всё что пожелается. Я его сейчас режу и правлю под себя... Слишком там всё наворочено, но результаты радуют. | |
| |
|
|
| |
|
|
| |
для: slonik
(06.10.2006 в 15:38)
| | | Мне не нужно слишком навороченный...
Мне Всево лишь нужно определить битрейт и моно или стерео... | |
| |
|
|
| |
|
|
| |
для: skor
(06.10.2006 в 20:06)
| | | Ну есть такая штука, как PEAR (http://pear.php.net/) и вот в нём есть, наверно самая лучшая библионтека, по вытаскиванию инфы из файлов. Большинство скриптом используют именно эту библиотеку - http://pear.php.net/package/MP3_ID
Но я выбрал Getid3, т.к. нужно более продвинутые возможности, в том числе - сканирование дирректории и занесения всех данных в базу данных mysql...а потом уже использовать эту инфу по сайту. | |
| |
|
|
| |
|
|
| |
для: slonik
(06.10.2006 в 23:48)
| | | во спасибо ))
PEAR использовал, как раз то что надо ))
ВСЕМ СПАСИБО ЗА ПОМОЩЬ!! | |
| |
|
|
| |
|
|
| |
для: skor
(05.10.2006 в 21:31)
| | | Вроде ничего дополнительно не нужно. Просто копируете этот код себе, и вызываете потом в нужном месте функцию getinfo(), передав ей в качестве параметра путь (не url) к mp3-файлу, а она вам вернет массив с битрейтом, частотой, стерео/моно и времени звучания. Вроде так. | |
| |
|
|
| |
|
|
| |
для: Киналь
(05.10.2006 в 22:02)
| | | щас попробуемс.. спасиб ;) | |
| |
|
|
| |
|
|
| |
для: Киналь
(05.10.2006 в 22:02)
| | | выдает огромный массив ошибок ((( | |
| |
|
|
| |
|
|
| |
для: skor
(06.10.2006 в 13:53)
| | | Какого типа ошибки? Приведите несколько для примера. | |
| |
|
|
| |
|
|
| |
для: Киналь
(06.10.2006 в 14:39)
| | |
Notice: Use of undefined constant bitrate - assumed 'bitrate' in z:\home\12.ru\www\untitled-6.php on line 102
Notice: Use of undefined constant frequency - assumed 'frequency' in z:\home\12.ru\www\untitled-6.php on line 103
Notice: Use of undefined constant stereo - assumed 'stereo' in z:\home\12.ru\www\untitled-6.php on line 104
Notice: Use of undefined constant time - assumed 'time' in z:\home\12.ru\www\untitled-6.php on line 105
Notice: Use of undefined constant int - assumed 'int' in z:\home\12.ru\www\untitled-6.php on line 108
|
| |
| |
|
|
| |
|
|
| |
для: skor
(06.10.2006 в 14:54)
| | | Так это просто синтаксические - ключи массива написаны без кавычек. То есть нужно сиправить
на
и так далее. | |
| |
|
|
|