title
Description
Body
1 - http://php.net/manual/ru/book.id3.php
2 - https://github.com/Gemorroj/MP3_Id3*
* - Добавлено в "Proposals", но народ что-то активности не проявляет. Такое ощущение, что PEAR скорее мертв, чем жив.
Неактивен
А как правильно конвертить?
Вот код:
<?php
require_once './id.php';
// Создаем объект, читаем файл
$id3 = &new MP3_Id();
$result = $id3->read('./files/downloads/6/'.$file['file_id'].'/'.$file['real_name'].'');
if (PEAR::isError($result) && $result->getCode() !== PEAR_MP3_ID_TNF) {
die($result->getMessage() . "\n");
}
// Читаем поля и выводим информацию
echo 'Название: ' . $id3->getTag('name') . "<br/>";
echo 'Исполнитель: ' . $id3->getTag('artists') . "<br/>";
echo 'Альбом: ' . $id3->getTag('album') . "<br/>";
echo 'Год: ' . $id3->getTag('year') . "<br/>";
echo 'Жанр: ' . $id3->getTag('genre') . "<br/>";
?>
Куда код вставлять?
Неактивен
Это только Idv1 теги. Сейчас как чаще Idv2 используются уже.
А конверить, анпример так:
|
|
Неактивен
Неактивен
И как убрать ошибки
trackNumber - ��6/12
trackTitle - ��American Noise
artistName -
albumTitle - ��Rise
albumArtist - ��Skillet
year - ��2013
genre - MP3_Id3_Genre Object ( [id:protected] => [name:protected] => )
comment -
composer -
copyright -
url -
encodedBy -
Неактивен
https://github.com/Gemorroj/MP3_Id3/blo … Id3/Id.php
|
|
Неактивен
Jaki написал:
Посоветуйте что-нибудь для автоматического определения кодировки
считай, что такое невозможно. можно лишь определить UTF-8 или нет.
Jaki написал:
Как определить версию id3 тега с помощью pear
хм, честно говоря не интересовался. В свободное время попробую реализовать.
Неактивен
Вот может кому надо вывод всех idv2 idv1 тегов
<?php
require_once 'MP3/Id.php';
$id3 = &new MP3_Id();
$result = $id3->read('./files/downloads/6/'.$file['file_id'].'/'.$file['real_name'].'');
if (PEAR::isError($result)) {
set_include_path(dirname(__FILE__) . '/PEAR');
require_once 'MP3/Id3.php';
$id3 = new MP3_Id3('./files/downloads/6/'.$file['file_id'].'/'.$file['real_name'].'');
$tags = $id3->getTags();
if ($tags->getPicture()->getData()) {
// картинка есть
foreach ($tags as $k => $v) {
if ($k === 'picture') {
echo '<center><img src="data:' . $v->getMime() . ';base64,' . base64_encode($v->getData()) . '" alt="picture" style="width:170px;height:170px"/></center><br/>';
}
}
}
else {
echo '<center><img src="http://mp3panda.ru/views/default/images/noimg.jpg" style="width:170px;height:170px" /></center><br/>';
}
$name = $tags->gettrackTitle() ;
$name = iconv('UTF-16', 'UTF-8', $name);
echo 'Название: '.$name.'<br/>';
$artist = $tags->getartistName();
$artist = iconv('UTF-16', 'UTF-8', $artist);
echo'Исполнитель: '.$artist.'<br/>';
$album = $tags->getalbumTitle() ;
$album = iconv('UTF-16', 'UTF-8', $album);
echo 'Альбом: '.$album.'<br/>';
$year = $tags->getyear() ;
$year = iconv('UTF-16', 'UTF-8', $year);
echo 'Год: '.$year.'<br/>';
}
else {
echo '<center><img src="http://mp3panda.ru/views/default/images/noimg.jpg" style="width:170px;height:170px" /></center><br/>';
$name = $id3->getTag('name') ;
$name = iconv('Windows-1251', 'UTF-8', $name);
echo 'Название: '.$name.'<br/>';
$artists = $id3->getTag('artists') ;
$artists = iconv('Windows-1251', 'UTF-8', $artists);
echo 'Исполнитель: '.$artists.'<br/>';
$album = $id3->getTag('album') ;
$album = iconv('Windows-1251', 'UTF-8', $album);
echo 'Альбом: '.$album.'<br/>';
$genre = $id3->getTag('genre') ;
$genre = iconv('Windows-1251', 'UTF-8', $genre);
echo 'Жанр: '.$genre.'<br/>';
}
?>
Добавлено спустя 2 минуты 7 секунд:
Почему-то ещё не все теги выводит
Неактивен
Где прочитать? Я бы сюда не зашёл и не задавал вопросов, если бы нашёл где прочитать.
Добавлено спустя 9 минут 10 секунд:
Gemorroj написал:
Jaki, ты очень коряво все сделал. Почитай как работать с PEAR пакетами.
в genre отдается объект с жанром.
как? Напиши как жанр получить? И в чём корявость кода?
Неактивен
Jaki, http://pear.php.net/manual/ru/installation.getting.php
как теги получить - в примере на странице пакета.
если ты так и будешь просто копировать код, который тебе пишут, никогда ничему не научишься.
Неактивен
Неактивен