Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как узнать есть ли в заданном CD-ROM'е Audio CD?

Delphi , Файловая система , CD-ROM

Как узнать есть ли в заданном CD-ROM'е Audio CD?

Можно использовать функцию Windows API GetDriveType() чтобы определить является ли дисковод CD-ROM'мом. И функцию API GetVolumeInformation() чтобы проверить VolumeName на равенство 'Audio CD'.

Пример:

Code:

function IsAudioCD(Drive : char) : bool;
var
       DrivePath : string;
       MaximumComponentLength : DWORD;
       FileSystemFlags : DWORD;
       VolumeName : string;
Begin
       sult := false;
       DrivePath := Drive + ':\';
       if GetDriveType(PChar(DrivePath)) <> DRIVE_CDROM then
               exit;
       SetLength(VolumeName, 64);
       GetVolumeInformation(PChar(DrivePath),PChar(VolumeName),
       Length(VolumeName),nil,MaximumComponentLength,FileSystemFlags,nil,0);
       if lStrCmp(PChar(VolumeName),'Audio CD') = 0 then
               result := true;
end;
 
function PlayAudioCD(Drive : char) : bool;
var
       mp : TMediaPlayer;
begin
       result := false;
       Application.ProcessMessages;
       if not IsAudioCD(Drive) then
               exit;
       mp := TMediaPlayer.Create(nil);
       mp.Visible := false;
       mp.Parent := Application.MainForm;
       mp.Shareable := true;
       mp.DeviceType := dtCDAudio;
       mp.FileName := Drive + ':';
       mp.Shareable := true;
       mp.Open;
       Application.ProcessMessages;
       mp.Play;
       Application.ProcessMessages;
       mp.Close;
       Application.ProcessMessages;
       mp.free;
       result := true;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
       if not PlayAudioCD('D') then
               ShowMessage('Not an Audio CD');
end;

Взято из

DELPHI VCL FAQ Перевод с английского        

Подборку, перевод и адаптацию материала подготовил Aziz(JINX) специально для Королевства Дельфи

Код на Delphi - простое реализация для проверки, содержит ли CD-ром аудио-диск. Вот шаг за шагом, как работает код:

  1. Функция IsAudioCD принимает букву диска в качестве входного параметра и возвращает булевое значение, указывающее, содержит ли диск аудио-диск.
  2. Сначала функция проверяет, является ли диск CD-ром с помощью API-функции GetDriveType. Если это не CD-rom, функция немедленно выходит из программы.
  3. Затем код получает информацию о томпании для CD-ром диска с помощью API-функции GetVolumeInformation. Это включает в себя имя томпании, максимальную длину компонента, флаги файловой системы и другие детали.
  4. Код затем проверяет, является ли имя томпании равным 'Audio CD' с помощью сравнения строк (lStrCmp). Если это так, функция возвращает true, указывая, что диск содержит аудио-диск.

Функция PlayAudioCD не напрямую связана с проверкой аудио-дисков, ноrather демонстрирует, как играть аудио-диск с помощью компонента TMediaPlayer. Она создает новый экземпляр TMediaPlayer, настраивает его свойства (например, видимость, родитель, тип устройства, имя файла), открывает диск, играет аудио-диск и затем закрывает игрок.

Событийный обработчик кнопки Button1Click в форме вызывает функцию PlayAudioCD с буквой диска 'D' в качестве входного параметра. Если функция возвращает false, она отображает сообщение об ошибке, указывающее, что диск не содержит аудио-диск.

Вот ваш вопрос о том, как определить, содержит ли CD-rom аудио-диск, код, предоставленный выше, является одним из возможных подходов с использованием API-функций Windows. Другой альтернативой может быть использовать API-функцию Shell_NotifyChange для мониторинга изменений в CD-ром диске и проверки имени томпании или других свойств при изменении дискa (например, когда новый аудио-диск вставлен).

Статья описывает способ проверки, является ли заданное CD-ROM устройство Audio CD, используя функции Windows API GetDriveType() и GetVolumeInformation().


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: CD-ROM ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:35:57/0.0055630207061768/1