![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Table of content ;CD( таблица содержания Компакт Диска) [D5, Win95/98]
Sergn © (2002-03-25 17:37:00)Как прочитать Table of content CD. Например список музыкальных сэмплов из AUDIO-CD?
Sergn (2002-04-01 20:01:00) [1]>Donal_Graeme
Спасибо за информацию. Буду вести поиски в новом направлении
vuk (2002-04-01 18:53:00) [2]Кстати о птичках, на CD бываютзаписаны и названия треков (т.н. CD Text). Правда где и в каком виде она там хранится я не в курсе.
Donal_Graeme (2002-04-01 18:45:00) [3]кстати, посмотри ещё www.freedb.org, там вроде как есть компонент для Дельфи 5, 6, который достаёт данные с этого сервера
Donal_Graeme (2002-04-01 18:33:00) [4]именно так.
Sergn (2002-04-01 18:19:00) [5]Т е, как я понял, если компьютер не подключен к интернету, а в CD
привод вставлен AUDIO CD , то проигрыватель не сможет показать названия музыкальных композиций.
Donal_Graeme (2002-04-01 17:49:00) [6]база располагается в интернете. Для более детальной информации - http://www.cddb.com
Sergn (2002-04-01 17:42:00) [7]Что это за база данных CDDB? (Как я понял Compact Disk Data Base). И где она располагается, если названия треков на диске не записаны?
Действительно пока я разбирался c CD-TOC, я не нашел в ней связи с описательной информацией о сэмплах, а только лишь системную информацию о треках и самом диске(например серийный номер диска).
Поэтому меня и пугает то, что даже получив информацию по всем структурам CD-TOC, я не получу нужную для меня текстовую информацию.
Donal_Graeme (2002-04-01 17:18:00) [8]названия треков проигрыватели получают обращаясь к базе данных CDDB. А на диске они не записаны.
Sergn (2002-04-01 16:49:00) [9]Прочитал о содержании CDA файлов. Но там лишь содержится информация о номере трека, о расположении его начала и длине.
Такую информацию можно получить через MCI( Media Control Interface) API. Мне же нужно узнать названия
музыкальных сэмплов , как это делают проигрыватели компакт дисков. Эту информацию я и надеюсь получить из TOC.
Donal_Graeme (2002-04-01 15:52:00) [10]эти CDA файлы несут информацию о положении трека на диске. точнее не скажу. попробуй поискать описание на www.wotsit.org
Sergn (2002-04-01 15:38:00) [11]>Donal_Graeme
При открытии AUDIO диска в эксплорере, видны только файлы .CDA,
(размер по 44 байта). Но я не могу понять какую они несут информацию.
Кстати нашел через MSDN и через "//winioctl.h" описание
структуры CDROM_TOC и то, как получить system I/O control codeIOCTL_CDROM_READ_TOC.
Но для того, чтобы их использовать, нужно получить Handle CD диска.
Но под Win9x
CreateFile("e:", GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING, 0,nil)
и
CreateFile("\\.\e:", GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING, 0,nil)
возвращают INVALID_HANDLE_VALUE
Также не уверен , что под win9x сработает DeviceIoControl с указанными параметрами (см. выше).Пока что я имею сведения,
что они работают с NT ядром.
Може быть, можно получить информацию о CD TOC через юзание vwin32.vxd и ассемблерную вставку.
Donal_Graeme (2002-04-01 15:00:00) [12]вообще-то каждый трек в эксплорере представляется как файл, причём в RIFF формате. имхо, чтобы содержимое прочитать можно обычными файловыми функциями воспользоваться
Sergn (2002-04-01 11:13:00) [13]Может есть какие либо API функции для работы под Win9x?
Я нашел лишь следующее:
hCdrom =CreateFile("e:", GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,nil);
DeviceIoControl(hCdrom,IOCTL_CDROM_READ_TOC,nil,0,pToc, sizeof(CDROM_TOC), @ReturnedByteCount, nil);
Но Delphi не находит описание структур API: IOCTL_CDROM_READ_TOC
и CDROM_TOC.(Visual C++ тоже. Не находит файл ntddcdrm.h)
Насколько мне известно эти стркутуры можно использовать лишь начиная с win2k и winXP.
Может как-то можно узнать адрес начала трека Lead-in , где и записана TOC? Moжет кто-нибудь подскажет с ассемблерной вставкой,
работающей под WIN9x.
Help please. Oчень нужна информация по чтению CDROM TOC.