Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.12;
Скачать: CL | DM;

Вниз

Как узнать продолжительность звукового файла?   Найти похожие ветки 

 
NaRuTo ©   (2009-05-21 07:50) [0]

Здраствуйте, Как узнать продолжительность звукового файла в секундах? Не прибегая к библиотеке Bass.Dll. Заранее спасибо.


 
Palladin ©   (2009-05-21 07:53) [1]

если соответствующая информация есть в заголовке, то прочитать ее


 
CodeMaster ©   (2009-05-21 07:53) [2]

Читал на
http://ru.wikipedia.org/wiki/ID3_%28%D0%BC%D0%B5%D1%82%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%29#.D0.A1.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D0.B0

То что каким-то образом перед ID3V1 хранится расширенная информация 227 Байт. Пытался прочитать эту информацию, но ничего не получается :
type
 TMP3Title = record
   TAG: String[4];
   Title: String[60];
   Artist: String[60];
   Albom: String[60];
   Bitrate: String[1];
   Genre: String[30];
   TimeBegin: String[6];
   TimeEnd: String[6];

end;
.......
var
Mp3Title: TMp3Title;
MFile: File;
begin
 AssignFile(MFile,FileName);
 Reset(MFile,1);

 Seek(MFile,FileSize(MFile) - 227);

 BlockRead(MFile,Buffer,SizeOf(Buffer));

 with Mp3Title do begin
   TAG:= Copy(Buffer,1,4);
   Title:= Copy(Buffer,5,60);
 end;
........

Вывожу Mp3Title в какой-нибудь текстовый диалог тот же ShowMessage - появляются закорючки заместо обычных букв.


 
Palladin ©   (2009-05-21 07:56) [3]

Ишь ты... Янус...
packed в record добавь...


 
CodeMaster ©   (2009-05-21 07:59) [4]

Всё равно показывает закорючки


 
Palladin ©   (2009-05-21 08:00) [5]

А что там по ссылке? Как структура описана?


 
CodeMaster ©   (2009-05-21 08:01) [6]

заголовок  4  «TAG+»
название  60  Ещё 60 байт с названием (всего получается 90)
артист  60  Ещё 60 байт с исполнителем
альбом  60  Ещё 60 байт с названием альбома
скорость музыки  1  Чем больше число, тем выше скорость («0» обозначает неизвестное значение)
жанр  30  30-символьная строка
время начала  6  время в формате mmm:ss
время конца  6  время в формате mmm:ss


 
Palladin ©   (2009-05-21 08:05) [7]

как Buffer описан?


 
CodeMaster ©   (2009-05-21 08:07) [8]

Buffer: array[1..227] of Char


 
Palladin ©   (2009-05-21 08:25) [9]

Эксперимент показал Seek(MFile,FileSize(MFile) - 127);
Где 100 лишних байт в заголовке, хз. Можешь открыть в фаре mp3 файл и убедится сам.


 
Palladin ©   (2009-05-21 08:27) [10]

Заголовок там не TAG+, а просто TAG, значит уже 3 символа. Ищи дальше несоответствия.



Страницы: 1 вся ветка

Текущий архив: 2009.07.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
4-1212241407
hub00
2008-05-31 17:43
2009.07.12
Cобытия курсора мышки.


15-1242038575
Синий
2009-05-11 14:42
2009.07.12
Игра Быки и Коровы на С++


15-1241883974
@!!ex
2009-05-09 19:46
2009.07.12
Как отследить изменение памяти?


15-1242208823
PEAKTOP
2009-05-13 14:00
2009.07.12
Поддержи Firebird !


15-1241970208
Pavia
2009-05-10 19:43
2009.07.12
IPv6 и Vista