#1 2013.08.10 21:33

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

id3 теги

Я тут задался вопросом...А как мне вывести инфу об mp3 файле? Многое пробовал, но не подходит или не работает. Знаю что есть такая библиотека pear, но как правильно её подключить незнаю. Помогите

Неактивен

#2 2013.08.11 09:56

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

1 - http://php.net/manual/ru/book.id3.php
2 - https://github.com/Gemorroj/MP3_Id3*

* - Добавлено в "Proposals", но народ что-то активности не проявляет. Такое ощущение, что PEAR скорее мертв, чем жив.

Неактивен

#3 2013.08.12 02:18

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

У меня ещё вопрос я скачал всё и подключил. Всё работает, но если файл выводится из базы как мне прописать его. Как я понимаю http:// использовать нельза

Неактивен

#4 2013.08.12 07:18

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Поломал голову, просидел ночь и поставил pear теперь работает, но русский в тегах не работает подскажите что делать

Неактивен

#5 2013.08.12 10:46

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

Jaki, через iconv конвертить в нужную кодировку.

Неактивен

#6 2013.08.12 16:57

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

А как правильно конвертить?
Вот код:
<?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/>";
?>
Куда код вставлять?

Неактивен

#7 2013.08.12 17:18

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

Это только Idv1 теги. Сейчас как чаще Idv2 используются уже.
А конверить, анпример так:

Код:

1
span style="color: #0000BB"><?php$name = $id3->getTag('name') ;$name = iconv('Windows-1251', 'UTF-8', $name);echo $name;

Неактивен

#8 2013.08.12 18:40

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Спасибо всё работает. А как idv2 подключить?

Неактивен

#9 2013.08.12 20:21

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

выше 2 ссылки

Неактивен

#10 2013.08.12 20:39

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Да я там понять ничего не могу. Можно доходчивым языком написать как подключить и как вывести и всё

Неактивен

#11 2013.08.12 20:53

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

там даже примеры есть

Неактивен

#12 2013.08.12 21:04

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

С помощью него можно обложку альбома вывести?
Добавлено спустя   9 минут  23 секунды:
Есть какой-нибудь упрощённый пакет или откуда его вырезать можно

Неактивен

#13 2013.08.12 22:23

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

Jaki, да, тег APIC - это idv2 тег. в примере даже как раз он и отображается.

Неактивен

#14 2013.08.12 22:55

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Можешь код вывода информации из mp3 и обложки написать в idv2

Неактивен

#15 2013.08.12 23:02

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Неактивен

#16 2013.08.12 23:35

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

У меня вопрос а это
Warning: require_once(MP3/IDv2/Reader.php):
где?

Неактивен

#17 2013.08.13 00:18

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Всё получилось сделать, но как сделать вывод как в 1 моём примере тоесть в нормальном виде

Неактивен

#18 2013.08.13 00:33

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

То есть как в 6 посте

Неактивен

#19 2013.08.13 00:47

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

И как убрать ошибки
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 -

Неактивен

#20 2013.08.13 16:35

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Gemorroj как вывести каждый тег по отдельности

Неактивен

#21 2013.08.13 19:27

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

https://github.com/Gemorroj/MP3_Id3/blo … Id3/Id.php

Код:

1
span style="color: #0000BB"><?php$id3 = new MP3_Id3('./file2.mp3');$tags = $id3->getTags();echo $tags->getComment();echo $tags->getComposer();// и т.д.

Неактивен

#22 2013.08.13 22:04

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

я тут на днях обнаружил, что пакет на голосование не поставил (там 3 стадии вобщем, запутанно). так что может еще и примут в основной репозиторий.

Неактивен

#23 2013.08.13 23:13

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Всё сделал, но iconv не помогает вообще
Добавлено спустя   3 минуты  51 секунду:
Посоветуйте что-нибудь для автоматического определения кодировки

Неактивен

#24 2013.08.14 00:04

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Как определить версию id3 тега с помощью pear

Неактивен

#25 2013.08.14 09:11

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

Jaki написал:

Посоветуйте что-нибудь для автоматического определения кодировки

считай, что такое невозможно. можно лишь определить UTF-8 или нет.

Jaki написал:

Как определить версию id3 тега с помощью pear

хм, честно говоря не интересовался. В свободное время попробую реализовать.

Неактивен

#26 2013.08.14 17:32

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Как сделать так чтобы если картинки в треке нет она не отображалась

Неактивен

#27 2013.08.14 18:16

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

Код:

1
span style="color: #0000BB"><?phpif ($tags->getPicture()->getData()) { // картинка есть} else { // картинки нет}

Неактивен

#28 2013.08.14 19:38

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Вот может кому надо вывод всех 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 секунд:
Почему-то ещё не все теги выводит

Неактивен

#29 2013.08.14 20:08

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Ещё не работает получение жанра в idv2

Неактивен

#30 2013.08.14 20:13

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

Jaki, ты очень коряво все сделал. Почитай как работать с PEAR пакетами.
в genre отдается объект с жанром.

Неактивен

#31 2013.08.14 20:41

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Где прочитать? Я бы сюда не зашёл и не задавал вопросов, если бы нашёл где прочитать.
Добавлено спустя   9 минут  10 секунд:

Gemorroj написал:

Jaki, ты очень коряво все сделал. Почитай как работать с PEAR пакетами.
в genre отдается объект с жанром.

как? Напиши как жанр получить? И в чём корявость кода?

Неактивен

#32 2013.08.14 21:28

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: id3 теги

Jaki, http://pear.php.net/manual/ru/installation.getting.php
как теги получить - в примере на странице пакета.
если ты так и будешь просто копировать код, который тебе пишут, никогда ничему не научишься.

Неактивен

#33 2013.08.14 22:26

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

А ты кинь мне ссылку на ту самую статью где написано как теги получать?

Неактивен

#34 2013.08.14 22:45

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Неактивен

#35 2013.08.14 23:31

Jaki
Участник
Зарегистрирован: 2013.08.10
Сообщений: 21
Карма: 0
Профиль

Re: id3 теги

Это вообще не инструкция, а пару слов и маленький пример

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.019 s