Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2017, 15:57   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию Артист и название mp3-файла - есть не замороченный способ?

Здравствуйте!
Есть список mp3-файлов. У них есть и теги Артист и Название, и в расширенных свойствах файла (вкладка "Подробно" у свойств файла) есть эта информация. Есть ли возможность как-то вытащить эти два поля без модулей типа ID3V2 (к тому же у меня D7, а там от 2009)? Либо из тегов, либо из свойств файла - без разницы.
На всякий случай: инфа в тегах только в ID3v2 и отсутствует в ID3v1
Ship_1 вне форума Ответить с цитированием
Старый 12.04.2017, 16:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Без проблема. Теги описаны, спеку в руки и вычитывайте как хотите...
p51x вне форума Ответить с цитированием
Старый 12.04.2017, 16:06   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не замороченный способ - это самостоятельно, без стороннего ПО? Конечно есть. Изучить тщательно структуру mp3 и самостоятельно прочитать из файла нужную информацию. Взять например TFileStream, открыть файл, позиционировать куда нужно, читать, анализировать, обрабатывать возможные ошибки ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.04.2017, 16:07   #4
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Аватар не замороченный - это как вот здесь, только тут, кажется, для v1. Исходя из этого, с v2 всё посложнее. Я не разбираюсь в байтах и структурах файлов, поэтому не могу провести аналогию и вычислить откуда брать данные. Надеюсь, более продвинутые программисты смогут мне это объяснить.

Последний раз редактировалось Ship_1; 12.04.2017 в 16:16.
Ship_1 вне форума Ответить с цитированием
Старый 12.04.2017, 16:43   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ship_1 Посмотреть сообщение
к тому же у меня D7, а там от 2009
c Delphi 7 ещё будут проблемы при работе с unicode.
Может быть, стоит перейти на более современную версию Delphi ?


Цитата:
Сообщение от Ship_1 Посмотреть сообщение
Я не разбираюсь в байтах и структурах файлов, поэтому не могу провести аналогию и вычислить откуда брать данные.
ваша ссылка на статью на habrahabr весьма полезная, если вдруг это Вам понадобится.

а можно поинтересоваться, а зачем Вам вообще нужно прочитать эти данные?
Может быть, есть другой способ, без использования Delphi.
Или Вы плеер на Delphi пишите? Тогда, конечно, без чтения не обойтись!

p.s. а ещё можно перейти на Lazarus + FreePascal (см. тему http://forum.lazarus.freepascal.org/...?topic=27044.0 )

Последний раз редактировалось Serge_Bliznykov; 12.04.2017 в 16:52.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2017, 16:51   #6
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Ну вот как раз с плеером было бы проще. Там логичнее было бы использовать Bass, а у него есть свои методы чтения ID3. Мне же просто нужно составить список:
Название файла - дата и время создания - название трека - исполнитель.
Цитата:
Может быть, стоит перейти на более современную версию Delphi ?
Крайне неприятен мне тот интерфейс, который у Борланда появился после седьмой (или восьмой, что не столь существенно) версии... Особенно "привязка" формы к какому-то непонятному полотну... К тому же я не такие уж мудрёные программки делаю, особой необходимости перехода нет. Разве что Юникод... Но в битве Юникод-Интерфейс побеждает интерфейс среды разработки )
Ship_1 вне форума Ответить с цитированием
Старый 12.04.2017, 17:07   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а вот сюда ходили?
там, например, есть библиотека id3v4.zip для Delphi 6. Думаю, что она и под D7 заработает.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2017, 17:12   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ship_1 Посмотреть сообщение
Но в битве Юникод-Интерфейс побеждает интерфейс среды разработки
т.е. неважно, что программа не работает и не читает/не пишет русский (и вообще unicode текст) - главное, чтобы в IDE кнопочки старенькие были.
ну-ну.. продолжайте в том же духе.
Рекомендую, кстати, Windows 98, там нет уникода, и, соотвественно, нет с ним проблем!


а есть ещё решение вашей проблемы.
возьмите какую-нибудь консольную программку (например, mpgtx отсюда), натравите её на ваши mp3 файлы - получите всю нужную Вам информацию. Потом обработаете чем и как захотите.
Возможно, что это будет быстрее, чем писать свою библиотеку для работы с ID3v2
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2017, 17:49   #9
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Цитата:
ну-ну.. продолжайте в том же духе
Прочитал сначала ту строчку, которая была написана у Вас над этой, начал отвечать, да потом увидел эту... Настроение ответа поменялось. А третья строчка дополнительно направила по этому направлению.
А кто Вам сказал, что у меня программа не работает и чего-то там не понимает по-русски?
1. Не всё на свете пишется юникодом. Вы знали об этом?
2. Юникод - не изобретение более поздних версий дельфи и проблемы кодировок вполне можно решать и на седьмой версии. Во всяком случае я ещё не встретил для своих задач критичных случаев работы с юникодом.
У меня и так нет проблем с юникодом! А переходить на новый Дельфи только из-за того, что он по умолчанию его поддерживает - уподобляться блондинке, которая покупает новый телефон из-за того, что у него камера на 2 мегапикселя больше!
Как же раздражает... Уже не первый раз такое. Программисты, блин. Зачем писать лишнюю строку кода, если можно просто переустановить всю систему.

А за ссылку спасибо. Посмотрю по внимательней немного позже.
Только, опять же, разве я собирался писать библиотеку?

Про id3v4. Кажется, она тоже только для ID3v1...
Ship_1 вне форума Ответить с цитированием
Старый 12.04.2017, 18:01   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
1. Не всё на свете пишется юникодом. Вы знали об этом?
Но теги от нормальных издателей пишутся на нем. Да и ядро винды давно юникодовое и от анси там только заглушки...

И именно вот так думающие программисты потом пишут программы, которые не работают или багую, если в пути или имени пользователя вдруг встретят что-то не анси.

Цитата:
Программисты, блин. Зачем писать лишнюю строку кода, если можно просто переустановить всю систему.
Ну да... лучше купить новый комп для ХП, чтобы в новой проге она успевала на приличной скорости конверитировать строки в ядре.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с чего начать решение? Считать из файла название объемных геометрических фигур,вывести название,количество граней,рисунок (Delphi) леночка93 Помощь студентам 6 16.05.2013 13:14
Есть ли способ вставлять кнопки в ячейки таблицы? Serhantes Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 27.02.2013 13:54
Есть ли другои способ получения внешнего IP ArtGrek Работа с сетью в Delphi 9 26.02.2011 16:46
WPF пропуск кадров. Есть ли способ предотвратить? Casper-SC Общие вопросы .NET 0 09.06.2010 20:16
Есть ли способ узнать, кто вызвал скрипт? motorway PHP 5 08.07.2009 09:16