Как узнать есть ли в заданном cd rom’е audio cd


Содержание

Если пропал CD-ROM (DVD-ROM) в Windows 7

В том случае, если на вашем компьютере с Windows 7 неожиданно пропал CD-ROM (DVD-ROM), рекомендую попытаться решить проблему по указанной методике. Итак, проблема заключается в том, что система в диспетчере устройств видит CD-ROM, но в Проводнике Windows его не отображает. Иногда в свойствах устройства может быть примерно такая ошибка: «Windows не удалось запустить это устройство, поскольку информация о его конфигурации в реестре неполна или повреждена. (Код 19)». В некоторых случаях система не может определить устройство и подобрать для него драйвер, и в диспетчере отображается «Неизвестное устройство».

По каким же причинам CD-ROM может исчезнуть из системы?

Наиболее частая причина пропадания cd-привода в системе – некорректное удаление программ использующих эмуляцию виртуальных дисков (либо же в самой процедуре деинсталляции может присутствовать ошибка), или же программ записи на диски. Этим багом грешат и Nero, и Alcohol, и Daemon Tools и ряд других аналогичных программ.

Прежде всего, проверьте, что CD-ROM определяется в BIOS. Если нет, рекомендуем проверить настройки BIOS (для гарантии их можно сбросить), а также корректность и надежность подключения интерфейсного кабеля и кабеля питания (как вариант, можно проверить работу устройства на другом компьютере).

Затем в диспетчере устройств Windows 7 найдите CD-ROM и попытайтесь удалить его, а после чего запустить его автоматический поиск. Обычно такая переустановка устройства не помогает. Скорее всего, система определит устройство, но драйвер подобрать не сможет.

Как правило, появление подобной проблемы связано с повреждением двух записей реестра Windows. И для устранения неполадки нужно в реестре удалить некорректные параметры с помощью редактора реестра (естественно у вас должны быть права администратора).

  1. Запустите редактор реестра regedit.exe
  2. Разверните ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\ >Совет. Аналогичная проблема в Windows 10, которая довольно часто встречается при апгрейде системы, описана в статье После обновления Windows 10 не видит привод CD/DVD-ROM

CD/DVD-привод не читает или не видит диски, что можно сделать?

Помогите с одной проблемой. Мой дисковод не видит DVD-диск (совсем). Когда вставляю диск — он начинает шуметь, немного хрустит, компьютер подвисает, и на этом все. Через пару минут — все заканчивается, если снова не попытаться посмотреть, что на диске.

Сам диск записывал на другом дисководе, и на нем он читается.

Доброго времени суток!

Ох, лет 10 назад эта проблема была куда популярнее. Согласен со многими пользователями, что CD/DVD-приводы в последнее время используются все реже (и, наверное, изжили себя). Однако, иногда в них есть острая потребность, например, когда нужно прочитать диск со старыми документами (которые не найти в сети), запустить игру с лицензионного диска с защитой, установить Windows, когда порты USB в упор не видят флешку и пр.

Признаться, честно, я и сам не перенес свою коллекцию DVD-дисков на внешний HDD (хотя давно порываюсь это сделать ). В этой статье рассмотрю, что можно предпринять для решения этой проблемы «невидимости».

Что можно предпринять, если дисковод не видит CD/DVD-диски

Разобраться в особенностях проблемы

Прежде чего, я порекомендую взять несколько дисков: CD-R, DVD-R, DVD+R, DVD-RW и др. (как записанные самостоятельно, так и купленные в магазинах). Дальше поочередно вставьте их в DVD-привод и попытайтесь прочесть с них информацию.

Если у вас пишущий дисковод — также попробуйте записать информацию на парочку дисков.

Суть данного действия : узнать характер проблемы, определить, связана ли проблема с одним конкретным диском, или с определенным типом дисков (скажем, привод может видеть CD, но не видеть DVD-диски). Думаю, прежде чем тратить деньги на новый привод (который не всегда решит проблему), гораздо разумнее потратить полчасика на «разбор полетов».

При проблемах видимости со многими дисками

Как уже сказал выше, дисковод может либо не видеть DVD-диски, либо CD, либо вообще никакие. Все причины невидимости дисков можно разделить на два типа (так проще с ними разбираться):

  1. либо пришел в негодность сам привод (лазер в нем), отошел шлейф, люфтит гнездо и пр. Т.е. проблема связана с аппаратной составляющей;
  2. либо проблема связана с ПО.

Как определить, есть ли аппаратная проблема:

  • если у вас есть установочный диск с Windows или любой другой загрузочный (например, с антивирусными программами и пр.), попробуйте его вставить в привод и перезагрузить ПК. Если с него запустится установка Windows и ПК его увидит — почти наверняка проблема связана с ПО (в помощь статья: Как настроить BIOS для загрузки с диска CD/DVD));
  • если дисковод вообще не реагирует ни на какие ваши действия — откройте корпус системного блока и посмотрите, подключены ли к нему шлейфы, попробуйте пере-подключить их. Нередко, когда кабель питания отходил и дисковод не работал. Тоже самое относится, кстати, и к ноутбукам — попробуйте вынуть дисковод из гнезда, почистить от пыли, протереть спиртом контакты и заново произвести установку;
  • обратите внимание на то, а определяется ли дисковод в BIOS. Если BIOS не видит дисковод, не определяет и не показывает его модель, название, скорее всего, ваш привод «накрылся». О том, как войти в BIOS.

Привод определяется в BIOS!

Если проблема аппаратная

1) Как уже рекомендовал выше, обратите внимание на шлейфы. Если есть возможность, попробуйте подключить дисковод к другим шлейфам и проверить, будет ли он работать.

2) Чаще всего проблема кроется в грязи и пыли, которая попала на лазер и теперь он не может считывать информацию с диска. Для его очистки, можно попробовать различные специальные чистящие диски и жидкости.

Например, есть диски со щеточками, когда такой диск раскручивается в приводе, то щеточка смахивает пыль, что благоприятно сказывается на работе привода.

Чистящий диск (на нем есть небольшая щеточка)

3) Также почистить привод можно, если вручную его разобрать и продуть, например, с помощью баллончика со сжатым воздухом. Однако, не каждый привод можно разобрать, да и не так это просто.

Можно попробовать просто открыть лоток и через него продуть привод баллончиком. Очень редко, но помогает.

4) Что насчет ремонта — то сейчас подобные дисководы, насколько я знаю, никто не ремонтирует (нерентабельно). При поломках — их просто меняют на новые. Если сами не знаете, как заменить привод (или какой купить взамен) — обратите внимание на внешние устройства — их без проблем можно подключать к обычному USB порту.

5) Кстати, сейчас есть в продаже очень дешевые внешние DVD-приводы (как пишущие, так и читалки). Они здорово могут выручить, когда вдруг внезапно потребовалось поработать с CD/DVD форматом.

Совет. Очень дешевые DVD-приводы можно найти в китайских магазинах.

Внешний USB 3.0 привод DVD-RW

Если проблема программная

1) Удаление (отключение) мешающих работе программ

Для начала рекомендую вспомнить (обратить внимание) когда появилась проблема, после установки какой программы. Чаще всего, проблема связана с программами для эмуляции CD/DVD-приводов (это такие программы, как Alcohol 120%, Daemon Tools, Nero, Ultra ISO, Clone CD и т.д.).


Panda заблокировала всё.

Иногда, некоторые антивирусы могут блокировать чтение дисков, предполагая, что там есть угрозы (и пока диск не будет полностью проверен — вам прочесть его не дадут!). Например, раньше этим славилась Panda Titanium при выставлении максимального уровня защиты.

Совет : удалите на время тестирования DVD-привода софт, создающий виртуальный дисковод. Кроме этого, отключите (или удалите) антивирус.

2) Попробовать откатить систему (если есть точки восстановления)

Если у вас есть точка восстановления в Windows (а все системы, кроме Windows 10, делают их по умолчанию) — попробуйте восстановить систему. О том, как это делается, можете узнать в этой статье: https://ocomp.info/vosstanovlenie-windows-10.html

3) Попробовать обновить/заменить драйверы

Нередко проблема связана с драйверами. Чтобы переустановить текущий драйвер, зайдите в диспетчер устройств (нажмите сочетание кнопок Win+Pause, в меню слева увидите ссылку на диспетчер) , и раскройте вкладку «DVD-дисководы. «. Найдите в этой вкладке свое устройство и удалите его.

Удаление устройства — диспетчер устройств

Далее нажмите в верхнем меню диспетчера устройств кнопку «Обновить конфигурацию оборудования». Дисковод должен найтись автоматически и драйвер снова будет установлен.

Обновить конфигурацию устройств

Как правило, такой простой способ позволяет восстановить нормальную работу привода.

Кстати, обратите внимание на вкладку » >свойства каждого ATA Chanel и проверьте, везде ли задействован DMA . Если где-то нет, поставьте галочку и сохраните настройки.

Свойства — дополнительные параметры — Задействовать DMA

4) Переустановить ОС Windows

Бывает и так, что никакие ухищрения не позволяют восстановить работу Windows: могут быть испорчены некоторые системные файлы, что-то удалено, завирусовано и т.д. В некоторых случаях, чем найти причины и решение, что не так с системой, гораздо быстрее переустановить ее.

При невидимости конкретного диска

Как правило, такие не читаемые диски уже изрядно исцарапаны. При их вставке, нередко, когда компьютер подвисает, пытаясь прочесть с них информацию. Пример одного из таких дисков представлен на фото ниже.

На поверхности диска заметны царапины

1) Попробуйте использовать другой CD/DVD-привод

Если вам очень нужна информация с носителя, первое, что порекомендую — это воспользоваться другим приводом (желательно DVD-RW, т.к. у пишущих приводов чувствительнее считывание информации). Нередко, когда один привод не видит диск, а другой способен считать с него все данные.

Если диск читается на отличном приводе — сразу же сделайте копию с этого диска. Т.к. может так стать, что в следующий раз вы уже его не прочтете.

2) Попробуйте аккуратно протереть диск (для этого в продаже есть спец. средства). Благодаря такой протирки можно «загладить» часть царапин и читаемость диска несколько повысится.

3) Воспользуйтесь специальными программами для чтения плохих дисков (например, Bad Copy или Unstoppable Copier ). Они несколько раз попытаются считать не отвечающий участок (сектор), и в худшем случае — просто «забьют» его нулем (а не зависнут, как Windows).

Unstoppable Copier — пример окна программы

Если дело имеем с видео, музыкой, картинками — то скорее всего, у вас просто будет «немая» секунда в видео или потеряется часть картинки. Не так плохо, как потеря всей информации. Если на диске архивы программ, игр — то последствия самые печальные, такие вот «зибитые» нулями участки — не позволят вам установить оные приложения (т.е. по сути они будут испорчены!).

Ну и последнее, что хотелось бы отметить: сейчас в сети можно найти абсолютное большинство файлов (будь то старые игры или фильмы, какие-то программы и т.д.), которые, возможно, вы хотите прочесть с «невидимого» диска.

И если речь не идет о чем-то уникальном и специфическом, возможно стоит потратить несколько минут на поиски информации в интернете, чем на ремонт и «пляски» вокруг DVD-привода? Скорее всего, сможете найти файлы даже в лучшем качестве!

unixforum.org

Форум для пользователей UNIX-подобных систем

  • Темы без ответов
  • Активные темы
  • Поиск
  • Статус форума

Привод DVD читает CD , но не читает DVD.

Привод DVD читает CD , но не читает DVD.

Сообщение qwerta » 30.08.2011 15:18

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Nikky » 30.08.2011 18:18

Re: Привод DVD читает CD , но не читает DVD.

Сообщение valet2valet » 30.08.2011 18:49

Re: Привод DVD читает CD , но не читает DVD.


Сообщение kma21 » 04.09.2011 20:23

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Indarien » 05.09.2011 10:17

Re: Привод DVD читает CD , но не читает DVD.

Сообщение flank’er » 05.09.2011 21:56

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Sora » 05.09.2011 22:18

Re: Привод DVD читает CD , но не читает DVD.

Сообщение kma21 » 05.09.2011 22:48

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Bizdelnick » 06.09.2011 01:00

Пишите правильно:

в консол и
вкупе (с чем-либо)
в общем
в ообще
в течени е (часа)
нович ок
нюанс
п о умолчанию
приемл емо
пробле ма
проб овать
тра фик

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Sora » 06.09.2011 09:36

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Indarien » 06.09.2011 09:54

Re: Привод DVD читает CD , но не читает DVD.

Сообщение qwerta » 06.09.2011 15:10

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Sora » 06.09.2011 17:27

Re: Привод DVD читает CD , но не читает DVD.

Сообщение kma21 » 06.09.2011 17:39

Re: Привод DVD читает CD , но не читает DVD.

Сообщение Bizdelnick » 06.09.2011 17:52

Как узнать есть ли в заданном cd rom’е audio cd?

1. Если вы не уверены в правильности ответа, напишите об этом, или не отвечайте вообще, не давайте дезинформацию!
2. Не забывайте указывать полное наименование, модель, изготовителя и краткие характеристики оборудования.
3. Аргументируйте свое мнение — приводите развернутое высказывание или источник информации.
4. Прежде чем задать вопрос посмотрите, нет ли ответа на него на перечисленных ниже ресурсах:
FAQ
Полезные ссылки
www.ixbt.com
www.overclockers.ru
www.fcenter.ru
www.3dnews.ru
www.thg.ru
www.nvworld.ru
www.radeon2.ru

Здесь вы можете выразить мнение о модераторе этого раздела, ^D^ima.

Как узнать есть ли в заданном cd rom’е audio cd?

Как вставить содержимое файла в текущую позицию курсора в компонете TMemo?

Считайте файл в TMemoryStream, затем ипользуйте метод TMemo SetSelTextBuf() для вставки текста;

var TheMStream : TMemoryStream; Zero : char; begin TheMStream := TMemoryStream.Create; TheMStream.LoadFromFile(‘C:\AUTOEXEC.BAT’); TheMStream.Seek(0, soFromEnd); //Null terminate the buffer! Zero := #0; TheMStream.Write(Zero, 1); TheMStream.Seek(0, soFromBeginning); Memo1.SetSelTextBuf(TheMStream.Memory); TheMStream.Free; end;

Вопрос:

Как в компоненте TMemo перехватить нажатие Ctrl-V и вставить специальный текст не из буфера обмена (clipboard)?

uses ClipBrd; procedure TForm1.Memo1KeyDown (Sender: TObject; var Key: Word; Shift: TShiftState); begin if ((Key = ord(‘V’)) and (ssCtrl in Shift)) then begin if Clipboard.HasFormat(CF_TEXT) then ClipBoard.Clear; Memo1.SelText := ‘Delphi is RAD!’; key := 0; end; end;

Вопрос:

Как создать эквивалент TEdit но только с выравниваением вводимого текста по центру или по правой стороне?

TEdit не поддерживает выравниваение текста по центру и по правой стороне — лучше использовать компонент TMemo. Вам понадобится запретить пользователю нажимать Enter, Ctrl-Enter и всевозможные комбинации клавиш со стрелками, чтобы избежать появления нескольких сторк в Memo. Этого можно добиться и просматривая содержимое текста в TMemo в поисках кода возврата каретки (13) и перевода строки(10) на событиях TMemo Change и KeyPress. Можно также заменять код возврата каретки на пробел — для того чтобы позволять вставку из буфера обмена многострочного текста в виде одной строки.

procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Alignment := taRightJustify; Memo1.MaxLength := 24; Memo1.WantReturns := false; Memo1.WordWrap := false; end; procedure MultiLineMemoToSingleLine(Memo : TMemo); var t : string; begin t := Memo.Text; if Pos(#13, t) > 0 then begin while Pos(#13, t) > 0 do delete(t, Pos(#13, t), 1); while Pos(#10, t) > 0 do delete(t, Pos(#10, t), 1); Memo.Text := t; end; end; procedure TForm1.Memo1Change(Sender: TObject); begin MultiLineMemoToSingleLine(Memo1); end; procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); begin MultiLineMemoToSingleLine(Memo1); end;

Вопрос:

Как запрограммировать undo?

Memo1.Perform(EM_UNDO, 0, 0);
Если Вы хотите узнать, возможно ли выполнить операцию «Undo», проверьте «Undo status»:

If Memo1.Perform(EM_CANUNDO, 0, 0) <> 0 then begin end;
Для выполнения «Redo» выполните «Undo» еще раз.

Вопрос:


Можно ли создать форму, которая получает дополнительные параметры в методе Сreate?

Просто замените конструктор Create класса Вашей формы.

unit Unit2; interface uses Windows, Messages, SysUtils, ); Unit2.Form2.Show; end;

Вопрос:

Почему при изменении цвета шрифта в StatusBar’s он (шрифт) не меняется?

Status bar (строка состояния) — стандартный элемент управления Windows и цвет его шрифта задается через Control Panel (константа clBtnText). Этот цвет по умолчанию черный и может меняться при выборе пользователем той или иной цветовой схемы. У компонента ТStatusBar и его панелей есть возможность «owner-draw» — программной перерисовки, которая позволяет выводить на панель текст любого цвета. Измените свойство Style компонента TStatusBar.Panels на OwnerDraw.

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin if Panel = StatusBar.Panels[0] then begin StatusBar.Canvas.Font.Color := clRed; StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, ‘Panel — 0’) end else begin StatusBar.Canvas.Font.Color := clGreen; StatusBar.Canvas.TextOut(Rect.Left, Rect.Top, ‘Panel — 1’); end; end;

Вопрос:

Как бы мне создать эдакий trackbar в котором вместо широкой белой полоски с ползунком была бы тонкая линия?

В примере создается компонент, унаследованный от TTrackbar который переопределяет метод CreateParams и убират флаг TBS_ENABLESELRANGE из Style. Константа TBS_ENABLESELRANGE обьявленна в модуле CommCtrl.

uses CommCtrl, ComCtrls; type TMyTrackBar = >

Вопрос:

Мне нужен временный canvas, но когда я пытаюсь его создать получаю сообщения об ошибках. Как создать TCanvas?

Создайте Bitmap и используйте свойство canvas класса TBitmap. Пример создает Bitmap, рисует на его canvas’е, выводит этот canvas на форму и освобождает bitmap.

procedure TForm1.Button1Click(Sender: TObject); var bm : TBitmap; begin bm := TBitmap.Create; bm.W >

Вопрос:

В некоторых видео режимах прозрачная часть glyph’а стандартного TBitBtn становится видной. Как этого избежать?

В примере используется техника закраски прозрачной части glyph’а цветом кнопки на которой он находится — таким образом glyph кажется прозрачным.

function InitStdBitBtn(BitBtn : TBitBtn; kind : TBitBtnKind) : bool; var Bm1 : TBitmap; Bm2 : TBitmap; begin Result := false; if Kind = bkCustom then exit; Bm1 := TBitmap.Create; case Kind of bkOK : Bm1.Handle := LoadBitmap(hInstance, ‘BBOK’); bkCancel : Bm1.Handle := LoadBitmap(hInstance, ‘BBCANCEL’); bkHelp : Bm1.Handle := LoadBitmap(hInstance, ‘BBHELP’); bkYes : Bm1.Handle := LoadBitmap(hInstance, ‘BBYES’); bkNo : Bm1.Handle := LoadBitmap(hInstance, ‘BBNO’); bkClose : Bm1.Handle := LoadBitmap(hInstance, ‘BBCLOSE’); bkAbort : Bm1.Handle := LoadBitmap(hInstance, ‘BBABORT’); bkRetry : Bm1.Handle := LoadBitmap(hInstance, ‘BBRETRY’); bkIgnore : Bm1.Handle := LoadBitmap(hInstance, ‘BBIGNORE’); bkAll : Bm1.Handle := LoadBitmap(hInstance, ‘BBALL’); end; Bm2 := TBitmap.Create; Bm2.W >

Вопрос:

Создание PolyPolygon используя массив точек?

Polygon — метод компонента TCanvas получает в качестве параметра динамический массив точек. Функция PolyPolygon() из Windows GDI получает указатель на массив точек.

procedure TForm1.Button1Click(Sender: TObject); var ptArray : array[0..9] of TPOINT; PtCounts : array[0..1] of integer; begin PtArray[0] := Point(0, 0); PtArray[1] := Point(0, 100); PtArray[2] := Point(100, 100); PtArray[3] := Point(100, 0); PtArray[4] := Point(0, 0); PtCounts[0] := 5; PtArray[5] := Point(25, 25); PtArray[6] := Point(25, 75); PtArray[7] := Point(75, 75); PtArray[8] := Point(75, 25); PtArray[9] := Point(25, 25); PtCounts[1] := 5; PolyPolygon(Form1.Canvas.Handle, PtArray,PtCounts,2); end;

Вопрос:

Как создать невизуальный компонент без иконоки, которая изображается в палитре компонентов в «design-time» (вроде TField)?

Невизуальные компоненты без иконоки удобны для субкомпонентов, связанных с какими-то другими компонентами. Создайте компонент как обычно, но используйте RegisterNoIcon вместо RegisterComponent.

Вопрос:

Как показывать нестандартный встроенный редактор (inplace editor) в ячейке stringgrid (например combobox).

Вопрос:

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

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

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;

Вопрос:

Как узнать есть ли у мыши колесико?

Свойство «WheelPresent» глобального обьекта «mouse».

Вопрос:

События KeyPress и KeyDown не вызываются для клавиши Tab — как определить, что она была нажата?

На уровне формы клавиша tab обычно обрабатывается Windows. В примере создается обработчик события CM_Dialog для перехвата Dialog keys.

type TForm1 = class(TForm) private procedure CMDialogKey( Var msg: TCMDialogKey ); message CM_DIALOGKEY; end; var Form1: TForm1; implementation <$R *.DFM>procedure TForm1.CMDialogKey(var msg: TCMDialogKey); begin if msg.Charcode <> VK_TAB then inherited; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then Form1.Caption := ‘Tab Key Down!’; end;

Вопрос:

В чем отличие между Create(Self) и Create(Application)?

Self может быть использовано только в методе класса, и ссылается на текущий экземпляр класса. Таким образом «Self» в методе класса TForm1 ссылается на текущий экземпляр TForm1. При создании компонента Вы передаете его владельца (owner) в конструктор. При уничтожении формы или компонента автоматически уничтожаются и все компоненты владельцем которого она является. Таким образом если при создании формы передать в качестве владельца Application эта форма будет автоматически уничтожена при уничтожении Application. Если же при создании формы передать в качестве владельца другую форму, вновь созданная форма будет автоматически уничтоженна при уничтожении формы-владельца.

Вопрос:


Как во время выполнения определить поддерживает ли обьект заданное свойство?

Ответ:
function HasProperty(Obj : TObject; Prop : string) : PPropInfo; begin Result := GetPropInfo(Obj. ); if p <> nil then SetOrdProp(Button1, p, clRed) else ShowMessage(‘Button has no color property’); p := HasProperty(Label1, ‘Color’); if p <> nil then SetOrdProp(Label1, p, clRed) else ShowMessage(‘Label has no color property’); p := HasProperty(Label1.Font, ‘Color’); if p <> nil then SetOrdProp(Label1.Font.Color, p, clBlue) else ShowMessage(‘Label.Font has no color property’); end;

Вопрос:

Как при проигрывании музыки с Audio CD показывать сколько прошло минут и секунд?

В примере время выводится по таймеру.

uses MMSystem; procedure TForm1.Timer1Timer(Sender: TObject); var Trk : Word; Min : Word; Sec : Word; begin with MediaPlayer1 do begin Trk := MCI_TMSF_TRACK(Position); Min := MCI_TMSF_MINUTE(Position); Sec := MCI_TMSF_SECOND(Position); Label1.Caption := Format(‘%.2d’,[Trk]); Label2.Caption := Format(‘%.2d:%.2d’,[Min,Sec]); end; end;

Вопрос:

Можно ли рисовать на рамке формы?

Обрабатывайте событие WM_NCPAINT. В примере рамка обводится красной линией толщиной в 1 пиксел.

Вопрос:

Как выполнить какой-то процесс тогда, когда пользователь не работает с моим приложением?

Создайте процедуру, которая будет вызываться при событии Application.OnIdle.
Обьявим процедуру:
procedure IdleEventHandler(Sender: TObject; var Done: Boolean);
В разделе implementation опишем поцедуру:
procedure TForm1. >
В методе Form’ы OnCreate — укажем что наша процедура вызывается на событии Application.OnIdle.
Application.On >
Событие OnIdle возникает один раз — когда приложение переходит в режим «безделья» (idle). Если в обработчике переменной Done присвоить False событие будет вызываться вновь и вновь, до тех пор пока приложение «бездельничает» и переменной Done не присвоенно значение True.

Вопрос:

При перемещении фокуса ввода клавишей Tab чтобы переместить его в RadioGroup нужно нажать клавишу Tab дважды если какой нибудь пункт RadioGroup уже выбран, но только один раз если не выбран. Можно ли сделать поведение RadioGroup логичным?

Установка свойства RadioGroup’ы TabStop в false должна решить эту проблему — поскольку клавиша tab будет продолжать работать — перемещаясь сразу на выделенный пункт RadioGroup.

Вопрос:

Как разместить маленькие картинки в компоненте TPopUpMenu?

В приведенном примере показано как это сделать с использованием функции Windows API SetMenuItemBitmaps(). Эта функция получает handle popup menu, позицию строчки меню куда будет помещена картинка, и два дескриптора(handles) на две картинки (одна из них — картинка которая будет показана когда строка меню доступна, вторая — когда строка меню недоступна).

type TForm1 = ); SetMenuItemBitmaps(PopUpMenu1.Handle,1,MF_BYPOSITION,BmUnChecked.Handle, BmChecked.Handle); end; procedure TForm1.FormDestroy(Sender: TObject); begin bmUnChecked.Free; bmChecked.Free; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var pt : TPoint; begin pt := ClientToScreen(Point(x, y)); PopUpMenu1.Popup(pt.x, pt.y); end;

Вопрос:

Как узнать число кадров AVI файла, и выяснить как долго будет проигрывться этот файл?

В приведенном примере указано как получить эту информацию.

procedure TForm1.Button1Click(Sender: TObject); begin MediaPlayer1.TimeFormat := tfFrames; ShowMessage(‘Number of frames = ‘ + IntToStr(MediaPlayer1.Length)); MediaPlayer1.TimeFormat := tfMilliseconds; ShowMessage(‘Number of milliseconds = ‘ + IntToStr(MediaPlayer1.Length)); end;

Вопрос:

Как изменить число фиксированных колонок в TDbGrid?

procedure TForm1.Button1Click(Sender: TObject); begin TStringGr >

Вопрос:

Некоторые компоненты баз данных (и среди них TDBGrid) никак не меняют визуальных свойств, когда к ним отключен доступ (disabled). Как это изменить програмно?

Ниже приведен пример, меняющий цвет шрифта на clGray, когда доступ к элементу управления (в данном случае TDBGrid) запрещен (disabled).

procedure TForm1.Button1Click(Sender: TObject); begin DbGr >

Вопрос:

Как определить нажаты ли клавиши Shift, Alt, or Ctrl в какой-либо момент времени?

В приведенном примере показано как определить нажата ли клавиша Shift при выборе строчки меню. Пример также содержит функции проверки состояния клавиш Alt, Ctrl.

function CtrlDown : Boolean; var State : TKeyboardState; begin GetKeyboardState(State); Result := ((State[vk_Control] And 128) <> 0); end; function ShiftDown : Boolean; var State : TKeyboardState; begin GetKeyboardState(State); Result := ((State[vk_Shift] and 128) <> 0); end; function AltDown : Boolean; var State : TKeyboardState; begin GetKeyboardState(State); Result := ((State[vk_Menu] and 128) <> 0); end; procedure TForm1.MenuItem12Click(Sender: TObject); begin if ShiftDown then Form1.Caption := ‘Shift’ else Form1.Caption := »; end;

Вопрос:

Как изменить шрифта hint’а?

В примере перехватывается событие Application.OnShowHint и изменяется шрифт Hint’а.

type TForm1 = ; Font.Size:= 18; Font.Style:= [fsBold]; HintInfo.HintColor:= clWhite; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnShowHint := MyShowHint; end;

Вопрос:

Есть ли в Delphi эквивалент функции SendKeys Visual Basic’а?

Ниже приведена процедура, позволяющаю отправлять нажатия в любой элемент управления (window control), способный принимать ввод с клавиатуры. Вы можете использовать эту технику чтобы включать клавиши NumLock, CapsLock и ScrollLock под Windows NT. Та же техника работает и под Windows 95 для CapsLock и ScrollLock но не работает для клавиши NumLock.
Обратите внимание, что приведены четыре поцедуры: SimulateKeyDown() — эмулировать нажатие клавиши (без отпускания) SimulateKeyUp() — эмулировать отпускание клавиши SimulateKeystroke() — эмулировать удар по клавише (нажатие и отпускание) и SendKeys(), позволяющие Вам гибко контролировать посылаемые сообщения клавиатуры.
SimulateKeyDown(), SimulateKeyUp() и SimulateKeystroke() получают коды виртуальных клавиш (virtural key) (вроде VK_F1). Процедура SimulateKeystroke() получает дополнительный параметр, полезный при эмуляции нажатия PrintScreen. Когда этот параметр равен нулю весь экран будет скопирован в буфер обмена (clipboard). Если дополнительный параметр равен 1 будет скопированно только активное окно.
Четыре метода «button click» демонстрируют использование: ButtonClick1 — включает capslock ButtonClick2 — перехватывает весь экран в буфер обмена (clipboard). ButtonClick3 — перехватывает активное окно в буфер обмена (clipboard). ButtonClick4 — устанавливает фокус в Edit и отправляет в него строку.

procedure SimulateKeyDown(Key : byte); begin keybd_event(Key, 0, 0, 0); end; procedure SimulateKeyUp(Key : byte); begin keybd_event(Key, 0, KEYEVENTF_KEYUP, 0); end; procedure SimulateKeystroke(Key : byte; extra : DWORD); begin keybd_event(Key,extra,0,0); keybd_event(Key,extra,KEYEVENTF_KEYUP,0); end; procedure SendKeys(s : string); var i : integer; flag : bool; w : word; begin flag := not GetKeyState(VK_CAPITAL) and 1 = 0; if flag then SimulateKeystroke(VK_CAPITAL, 0); for i := 1 to Length(s) do begin w := VkKeyScan(s[i]); if ((HiByte(w) <> $FF) and (LoByte(w) <> $FF)) then begin if HiByte(w) and 1 = 1 then SimulateKeyDown(VK_SHIFT); SimulateKeystroke(LoByte(w), 0); if HiByte(w) and 1 = 1 then SimulateKeyUp(VK_SHIFT); end; end; if flag then SimulateKeystroke(VK_CAPITAL, 0); end; procedure TForm1.Button1Click(Sender: TObject); begin SimulateKeystroke(VK_CAPITAL, 0); end; procedure TForm1.Button2Click(Sender: TObject); begin SimulateKeystroke(VK_SNAPSHOT, 0); end; procedure TForm1.Button3Click(Sender: TObject); begin SimulateKeystroke(VK_SNAPSHOT, 1); end; procedure TForm1.Button4Click(Sender: TObject); begin Application.ProcessMessages; Edit1.SetFocus; SendKeys(‘Delphi Is RAD!’); end;

Вопрос:

Я загружаю TImageList динамически. Как сделать картинки из TImageList прозрачными?


procedure TForm1.Button1Click(Sender: TObject); var bm : TBitmap; il : TImageList; begin bm := TBitmap.Create; bm.LoadFromFile(‘C:\DownLoad\TEST.BMP’); il := TImageList.CreateSize(bm.W >

Вопрос:

Как заставить TMediaPlayer проигрывать одно и тоже бесконечно? AVI например?

В примере AVI файл проигрывается снова и снова — используем событие MediaPlayer’а Notify

procedure TForm1.MediaPlayer1Notify(Sender: TObject); begin with MediaPlayer1 do if NotifyValue = nvSuccessful then begin Notify := True; Play; end; end;

Вопрос:

При выполнении диалога FontDialog со свойством Device равным fdBoth or fdPrinter, появляется ошибка «There are no fonts installed».

Эти установки должны показать шрифты совместимые либо с принтером либо с экраном. В примере диалог Windows ChooseFont вызывается напрямую чтобы показать список шрифтов, совместимых одновременно и с экраном и с принтером.

uses Printers, CommDlg; procedure TForm1.Button1Click(Sender: TObject); var cf : TChooseFont; lf : TLogFont; tf : TFont; begin if PrintDialog1.Execute then begin GetObject(Form1.Canvas.Font.Handle, sizeof(lf),@lf); FillChar(cf, sizeof(cf), #0); cf.lStructSize := sizeof(cf); cf.hWndOwner := Form1.Handle; cf.hdc := Printer.Handle; cf.lpLogFont := @lf; cf.iPointSize := Form1.Canvas.Font.Size * 10; cf.Flags := CF_BOTH or CF_INITTOLOGFONTSTRUCT or CF_EFFECTS or CF_SCALABLEONLY or CF_WYSIWYG; cf.rgbColors := Form1.Canvas.Font.Color; if ChooseFont(cf) <> false then begin tf := TFont.Create; tf.Handle := CreateFontIndirect(lf); tf.COlor := cf.RgbColors; Form1.Canvas.Font.Assign(tf); tf.Free; Form1.Canvas.TextOut(10, 10, ‘Test’); end; end; end;

Вопрос:

Как сменить дисковод, откуда MediaPlayer проигрывает аудио CD?

Вопрос:

Как убрать кнопку с названием моей программы из Панели Задач(Taskbar)?

Отредактируйте файл-проекта (View -> Project Source) Добавьте модуль Windows в раздел uses. Application.ShowMainForm := False; в строку после «Application.Initialize;». Добавьте ShowWindow(Application.Handle, SW_HIDE); в строку перед «Application.Run;» Ваш файл проекта должен выглядеть приблизительно так:

program Project1; uses Windows, Forms, Unit1 in ‘Unit1.pas’ , Unit2 in ‘Unit2.pas’ ; <$R *.RES>begin Application.Initialize; Application.ShowMainForm := False; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); ShowWindow(Application.Handle, SW_HIDE); Application.Run; end. В разделе «initialization» (в самом низу) каждого unit’а добавьте begin ShowWindow(Application.Handle, SW_HIDE); end.

Вопрос:

Как преобразовать цвета в строку — название цвета VCL?

Модуль graphics.pas содержит функцию ColorToString() которое преобразует допустимое значение TColor в его строковое представление используя либо константу-название цвета (по возможности) либо шестнадцатиричную строку. Обратная функция — StringToColor()

procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Add(ColorToString(clRed)); Memo1.Lines.Add(IntToStr(StringToColor(‘clRed’))); end;

Вопрос:

При показе максимизированное формы она перекрывает task bar и не выравнивается по верху экрана. В чем тут дело?

Это может произойти когда свойство position формы установленно в poScreenCenter. Установите position = poDefault.

Вопрос:

Как заставить TEdit не ‘пикать’ при нажатии недопустимых клавиш?

Перехватите событие KeyPress и установите key = #0 для недопустимых клавиш.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if ((UpCase(Key) ‘Z’)) then Key := #0; end;

Вопрос:

Как получить число и список всех компонентов, расположенных на TNoteBook?

В примере список выводится на Listbox.

procedure TForm1.Button1Click(Sender: TObject); var n: integer; p: integer; begin ListBox1.Clear; with Notebook1 do begin for n := 0 to ControlCount — 1 do begin with TPage(Controls[n]) do begin ListBox1.Items.Add(‘Notebook Page: ‘ + TPage(Notebook1.Controls[n]).Caption); for p := 0 to ControlCount — 1 do ListBox1.Items.Add(Controls[p].Name); ListBox1.Items.Add(EmptyStr); end; end; end; end;

Вопрос:

Я хочу вставить escape code в строку при использовании функции Format(). Например, я хочу создать строку, содержащую символ табуляции. В «C» я бы написал что-то вроде sprintf(buffer, «%s\t%s», str);. А как это будет на Pascal’e?

Функция Format Pascal’я не использует escape codes. Вместо этого нужно вставить в строку действительное значение символа в кодировке ASCII.

Buffer := Format(‘%s’#9’%s’, [Str1, Str2]); ShowMessage(Format(‘%s’#9’%s’, [‘Column1’, ‘Column2’]));

Вопрос:

Как показать первый кадр AVI-файла?

procedure TForm1.Button1Click(Sender: TObject); begin Application.ProcessMessages; MediaPlayer1.Open; Application.ProcessMessages; MediaPlayer1.Step; Application.ProcessMessages; MediaPlayer1.Previous; end;

Вопрос:

Когда пользователь щелкает по listview, он переходит в режим редактирования. Как перевисти его в редим редактирования по нажатию клавиши (например F2)?

Как узнать CD Rom пишущий или нет

Из этой статьи вы узнаете:
и для чего он нужен простому пользователю;M-Disc— что такое
;M-Disc— в чём основное отличие обыкновенного DVD от
?M-Disc— как узнать, пишущий привод моего ПК прожигает болванки

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

Узнал много нового о том какие бывают чипсеты, что делать с флешкой если она не определяется системой, где искать утилиты для восстановления программным методом, и как перевести флешку в тестовый режим путем замыкания ножек на чипе. Но во все вникать это не будем.


Далее опишу, превращение Kingston 8Gb DataTrаveler 101 с чипом Skymedi -> CD-ROM + HDD + USB Flash

-записывающее устройство против DVD-записывающего устройстваCD
… Но CD-R диски могут хранить данные или аудио записи и могут быть прочитаны почти любым CD-ROMом, и если CD-R будет превращен в аудио диск, тогда становится возможным прослушать этот диск в музыкальном центре или в CD плеере в вашем автомобиле. … Другое преимущество CD-R и CD-RW – тот факт, что вы можете записать видео файлы, типа MPEG или AVI, на диск так, чтобы они могли быть прочитаны…

Тестирование приводов с помощью классической программы CD WinBench 99 осуществлялось по расширенной схеме. Для определения скоростных характеристик использовался не только фирменный компакт-диск, но и две его копии, сделанные на носителях CD-R и CD-RW.

На приведенных выше графиках скорости чтения данных с поверхности носителей в буфер мы видим, что оба накопителя без проблем справились со стоявшей перед ними задачей, уверенно проработав со всеми тремя типами носителей.

На первой из предлагаемых Вам диаграмм приведены показатели CD-ROM WinMark, являющиеся отражением производительности накопителей. Очевидно, что на всех трех носителях более предпочтительным выглядит привод Samsung TS-H352, продемонстрировавший более высокие результаты.

Следующие две диаграммы показывают трансфер, достигнутый на внутренних и внешних дорожках дисков. Видно, что по этим показателям LG GDR-8163B почти ни в чем не уступает Samsung TS-H352. Вероятнее всего, что большая производительность последнего привода, зафиксированная выше, обусловлена наличием буфера более крупного объема.

К основным характеристикам дисководов относятся скорость передачи данных (скорость чтения/записи), качество считывания/записи, среднее время доступа, объем буферной памяти.

Скорость передачи данных определяется скоростью вращения диска и плотностью записанных на нем данных. Обычно она указывается в сравнении со стандартной скоростью Audio CD (CD-DA), составляющей порядка 150 Кб/с: 2х (300 Кб/с), 4х (600 Кб/с), 8х (1200 Кб/с), 50х (7500 Кб/с) и т.д. Старые приводы использовали постоянную линейную скорость чтения (CLV, Constant Linear Velocity), что требовало изменения скорости вращения диска при перемещении головки и увеличивало время доступа из-за инерционности диска. Частота вращения для односкоростных устройств (т.е. 150 Кбайт/с) лежала в диапазоне 200-500 об/мин, а для 12-скоростных составляла уже 2400-6400 об/мин, что стало создавать серьезные проблемы с балансировкой, так как диски бывают плохо центрированы. В результате производители перешли к технологиям CAV и P-CAV. CAV (Constant Angular Velocity) означает постоянную угловую скорость диска (как в винчестерах), а P-CAV (Partial CAV) использует постоянную угловую скорость только на внешних дорожках диска. При этом обозначение числа скоростей стало означать максимальную скорость считывания на внешних дорожках диска. Запись данных на CD начинается с внутренних дорожек, поэтому на не заполненных до конца дисках максимальная скорость не достигается. Так, у 34-скоростного привода скорость считывания может меняться от 2,8 Мбайт/с на внутренних до 5,3 Мбайт/с на внешних дорожках. В настоящее время скорость приводов увеличена до 70х и выше (соответствует скорости вращения привода более 12000 об./мин.). В результате появления моделей с интерфейсом Ultra ATA/33 скорость считывания и передачи данных по шине ATA доведена до 33,3 Мбайт/с. Погоня за излишне высокой скоростью привода CD-ROM часто оборачивается плохой читаемостью дисков невысокого качества из-за проблем с их балансировкой. Скорость записи дисков формата CD-RW обычно меньше скорости чтения и записи CD-R. Маркировка перезаписывающих накопителей предусматривает вид записи 8Х/4Х/32Х, где первая группа цифр указывает максимальную скорость записи дисков CD-R (в нашем примере — 8Х), вторая — максимальную скорость записи дисков CD-RW (4Х), третья — скорость чтения CD-ROM (32Х). Максимально возможный вариант — 52Х/32Х/52Х.

В некоторых случая такая операция позволяет
добиться того, что читающий привод распознает
записанный диск и может его прочитать. Такая
операция производится при помощи программы
записи дисков (например Nero Burning ROM) или при помощи
специальной утилиты.

Для дисков DVD-R и DVD-RW, операция
смены Book type не предусмотрена.

Функция записи Book type должна поддерживаться на
уровне DVD привода. Одноко не все DVD приводы
поддерживают эту функцию.

Какие диски лучше для записи DVD?

TDK CyClone AI-CDRW 241040X и Plextor PlexWriter
PX-W2410TA

десятков микрометров некритична и чтению не мешает. CyClone и PlexWriter пишут еще быстрее «Ямахи»,
но тоже не без хитрости. Метод их работы на высоких скоростях Z-CLV отличается
от CLV разбиением диска на три зоны, внутри которых запись ведется на 16-й,
20-й и 24-й скорости соответственно. В моменты перехода к следующей зоне лазер
перенастраивается на бульшую мощность, а обороты диска – на следующую начальную
частоту (внутри зоны частота растет плавно, как при классическом CLV). Инерцию
обхитрить удается, а «дырка» на стыке зон размером несколько

будет и впредь, PlexWriter в высоком классе, как и прежде,
останется недосягаем. Оба привода заслужили общего описания, поскольку
собраны они на базе одного набора оптики и электроники от Sanyo. Но если к результатам
TDK прибавить практически нечего (огорчила только принципиальная нечитаемость
поцарапанного диска, даже после снижения скорости до 1х), то Plextor я собирался
было поругать: при сравнимых характеристиках (если не учитывать рекордную скорость
извлечения аудио) он стоил заметно дороже. «В пределах $20 прибавка была бы
в самый раз за приобщение к элите CD-записи, да за низкий шум и общее ощущение
добротности» – к такому выводу мы пришли, общаясь с одним из московских реселлеров
Plextor. Через неделю, уточняя текущие цены перед сдачей материала, я обнаружил,
что цена не просто снизилась, но приравнялась к TDK! Если так

Метод записи тот же, брэнд не менее известный,
разве только имя дисководу не придумали звучное. А так – достойный аппарат,
пожалуй, с самыми сбалансированными характеристиками в обзоре. Отдельное спасибо
производителю за большую и хорошо ощутимую кнопку выгрузки диска.

Addonics Samsung SM-308B

не представляют. Этот привод
ко всему прочему еще и внешний, подключается через USB (рассчитан на USB 2.0).
Как и говорилось, обычный USB 1.0 с загрузкой не справляется, причем даже на
четвертой скорости запись оказалась неустойчивой и на CD-R, и на RW. Контроллер
Tekram DC-602W, добавивший в мой компьютер целых 5 розеток USB 2.0, полностью
исправил ситуацию, хотя решение в совокупности выходит дороговатым. Совмещенные дисководы – читающие DVD и записывающие
CD-R/RW – сейчас не редкость и ничего качественно нового собой

Также более детальную информацию о типе привода и его модели можно узнать таким способом. Нажмите по значку «Мой компьютер» правой кнопкой мышки. В контекстном меню выберите команду «Свойства». Дальше выберите «Диспетчер устройств», а в нем найдите пункт DVD и CD-ROM. Нажмите по стрелочке рядом с этим пунктом. Появится название модели вашего привода. Первое слово – это фирма-производитель накопителя, следующие буквы обозначают его тип. Если написаны буквы DRW, это значит, что привод может записывать информацию как на DVD-диски, так и на CD-диски.

Пятое — производитель. Здесь можно рассуждать долго и упорно, но я буду краток. Старайтесь придерживаться фирм: Plextor, Pioneer, ASUS, SONY (не путать с SONY-NEC — так называемый Optiarc). Это — наиболее качественные производители приводов.

Вот пожалуй, и всё о самых важных критериях.

Правило 2:ВСЕГДА(!) используйте только фирменные болванки. Помните, что BD диск хранит в разы больше информации, чем обычный DVD. И поэтому в ваших же интересах, чтобы записанная информация на такой диск хранилась как можно дольше.

Ведь ценность информации несоизмерима с ценностью самого носителя. Поэтому, сэкономленные 20-30 рублей на диске, может обернуться тем, что прослужит он вам всего каких-нибудь 5 лет, вместо «паспортных» 20-ти.

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

Я рекомендую покупать диски ТОЛЬКО от производителей: TDK, SONY, PHILIPS, Verbatim. Это признанные мировые бренды, изготавливающие гарантированно качественную продукцию.

И никаких Mirex, SmartTrack, VS и прочего…

Версия для печати
|
Отправить ссылку другу
|
Добавить в избранное

(7.13) На моём CD-ROM нет CD-CPDIF выхода, или, по какой то причине я не могу его использовать. Можно ли мне как-нибудь получить числовой звук для CD-Audio?

(7.13) На моём CD-ROM нет CD-CPDIF выхода, или, по какой то причине я не могу его использовать. Можно ли мне как-нибудь получить числовой звук для CD-Audio?

Можно. W2k позволяет передавать audio информацию с AudioCD через IDE шлейф в числовом виде. Для того что бы задействовать эту функцию, достаточно в Device Manager на Properties CD привода на второй закладке выставить галочку в чекбоксе «Enable Digital CD-Audio for this CD-ROM device.» Естественно, что после этого Вам не потребуется проводок который обычно подключают от CD-ROM к звуковой карте, всё будет идти через IDE шлейф.

Похожие главы из других книг

1+1=? Можно ли получить двойной выгрыш от двойной вид

1+1=? Можно ли получить двойной выгрыш от двойной вид Автор: Сергеев АлександрnVidia анонсировала свой топовый продукт GeFeorce 9800 GX2, которому вменяется в обязанности переплюнуть самую мощную до недавнего времени модель Radeon 3870 X2 и стать очередным самым быстрым продуктом

ИДЕИ: Математика обмана: Можно ли победить мошенничество? и какой ценой?

ИДЕИ: Математика обмана: Можно ли победить мошенничество? и какой ценой? Автор: Константин БогдановЧеловек всесилен, и могущество его проистекает от общества, в котором он живет. На протяжении всей своей жизни мы используем и преумножаем достижения человеческого

НАУКА: Заразные гены, или Горизонтальный поворот: Днк можно получить не только от родителей

НАУКА: Заразные гены, или Горизонтальный поворот: Днк можно получить не только от родителей Автор: Дмитрий ШабановЖурнал «Nature» публикует не только статьи о состоявшихся достижениях, но и эссе, авторы которых пытаются нащупать дальнейшие пути развития науки. Одно из

Звук не воспроизводится, звук тихий или с искажениями

Звук не воспроизводится, звук тихий или с искажениями Запустите воспроизведение любой композиции и выполните следующие действия.? Проверьте положение регулятора громкости и кнопки выключения в области управления воспроизведением проигрывателя (см. рис. 4.15).? Проверьте

(7.13) На моём CD-ROM нет CD-CPDIF выхода, или, по какой то причине я не могу его использовать. Можно ли мне как-нибудь получить числовой звук для CD-Audio?

(7.13) На моём CD-ROM нет CD-CPDIF выхода, или, по какой то причине я не могу его использовать. Можно ли мне как-нибудь получить числовой звук для CD-Audio? Можно. W2k позволяет передавать audio информацию с AudioCD через IDE шлейф в числовом виде. Для того что бы задействовать эту функцию,

(8.20) Можно ли под W2k услышать звук в старой игрушке для DOS?

(8.20) Можно ли под W2k услышать звук в старой игрушке для DOS? Старые игры напрямую обращаются к звуковой карте, поэтому стандартными средствами получить звук под W2k не удастся. Hо можно попробовать один из специальных эмуляторов, выпускаемых сторонними производителями,


1.19. Что случилось с regedit32.exe? Никак не могу его найти.

1.19. Что случилось с regedit32.exe? Никак не могу его найти. Этой полезной и привычной многим пользователям NT утилитки больше не существует. Все функции, которые когда то можно было выполнить только с её помощью, теперь доступны и в простом Regedit.

3.1. Преобразование строки в числовой тип

Голубятня: Умная иллюминация в моем безумном доме Сергей Голубицкий

Голубятня: Умная иллюминация в моем безумном доме Сергей Голубицкий Опубликовано 24 октября 2012 года Сегодня у нас гоблинская «Голубятня». Разговор пойдет об «умном доме», вернее, о такой его разновидности, как «умный свет». Признаюсь, до того, как

В какой момент лучше использовать технологии допродаж

В какой момент лучше использовать технологии допродаж Всегда! В интернет-магазине существует три момента, когда это можно сделать, – до покупки в момент выбора товаров, во время покупки в корзине с товарами и после покупки до момента оплаты

Право на нейтронную зачистку, или До какой степени можно и нужно управлять своими личными данными Юрий Ильин

Право на нейтронную зачистку, или До какой степени можно и нужно управлять своими личными данными Юрий Ильин Опубликовано 29 марта 2013…У царя Мидаса в результате конфликта с богом Аполлоном образовались ослиные уши. Об этом знали все, но под страхом смерти челяди

Числовой ввод и показатели степени

Числовой ввод и показатели степени Любые числовые строки в DSQL, которые могут быть сохранены как DECIMAL(18,S), вычисляются без потери точности, что могло бы произойти при промежуточном сохранении в виде DOUBLE. Синтаксический анализатор DSQL можно заставить распознавать числовые

Какой вид контекстной рекламы использовать для продвижения своего сайта

Какой вид контекстной рекламы использовать для продвижения своего сайта Контекстная реклама считается одним из самых эффективных инструментов привлечения посетителей на сайт, поскольку реклама показывается только потенциально заинтересованным пользователям Сети и

8 интернет-сервисов, которые можно использовать офлайн Олег Нечай

8 интернет-сервисов, которые можно использовать офлайн Олег Нечай Опубликовано 28 января 2014 Несмотря на практически повсеместное распространение сотовой связи и беспроводных сетей Wi-Fi, даже в ближайшем Подмосковье всё ещё встречаются «мёртвые

21.1.2. Числовой вывод

21.1.2. Числовой вывод Наиболее распространенный числовой вывод: Название Значение cols Количество столбцов it Настройка табуляции lines Количество строк на

Какой способ выделения памяти необходимо использовать

Какой способ выделения памяти необходимо использовать Если необходимы смежные страницы физической памяти, то нужно использовать один из низкоуровневых интерфейсов выделения памяти, или функцию kmalloc(). Это стандартный способ выделения памяти в ядре, и, скорее всего, в

Точное копирование звуковых компакт-дисков

Копирование звуковых компакт-дисков (дисков формата CD-DA, или аудиодисков) — камень преткновения в области современного цифрового звука. Читая различные журналы, в том числе и аудиофильские, участвуя в сетевых форумах, можно встретить совершенно противоположные мнения. Одни утверждают, что копирование такого диска ничем не отличается от копирования обычного файла — вставил и переписал, другие же считают, что точно скопировать звуковой диск невозможно в принципе. Часто диски CD-DA уподобляют дискам CD-ROM, невзирая на принципиальные различия их форматов и способов работы с ними.

В этой статье речь пойдет о создании точных копий звуковых данных с компакт-дисков. Единицей копирования является, как правило, дорожка диска, а не диск в целом, ведь точное копирование последовательности дорожек и пауз между ними является гораздо более простым процессом, нежели точное копирование содержимого самих дорожек. При необходимости можно сделать точную копию всего диска, с сохранением присущего именно этому диску уникального кода, по которому происходит идентификация дисков в централизованной базе данных (CDDB).

Структура информации на диске CD-DA

В общем случае можно считать, что информационная структура дорожки CD-DA — двухуровневая. Верхний уровень информации — поток амплитудных значений (отсчетов) цифрового звука — представляет собой звучание дорожки. При изготовлении диска из потока отсчетов путем кодирования и перемежения («размазывания» по поверхности диска) формируются так называемые кадры, которые и записываются на диск в виде последовательности отражающих и неотражающих пятен (питов). Последовательность битов, представленная питами на дорожке, — это нижний информационный уровень, он и представляет собой носитель информации.

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

В свете вышесказанного термин «точная копия» корректно применять лишь к информации верхнего уровня. Получение же точной копии информации на нижнем уровне требует сверхточных технологий и является практически нереальным, а главное — совершенно бессмысленным, так как требуется создать копию самого звучания, а не его материального носителя.

Разница в звучании оригинала и копии

Надо отметить, что даже получение абсолютно точной цифровой копии информации верхнего уровня диска не может гарантировать, что его звучание не будет отличаться от звучания оригинала в различных дисковых проигрывателях (CDP). Дело в том, что воспроизведение диска — это своего рода интерпретация записанной на нем цифровой информации, и не все CDP умеют делать это технически верно. Из-за дефектов прессования (у штампованных дисков) или записи (у матриц CD-R) информация на нижнем уровне может существенно различаться, однако в пределах запаса, создаваемого избыточным кодом, звуковые кадры верхнего уровня восстанавливаются одинаково. Технически правильно сконструированный проигрыватель должен полностью отсечь различия нижнего уровня, не допуская их влияния на звук, но на практике многие CDP этого не выполняют (о профессиональных устройствах чтения/записи компакт-дисков читайте на врезке «Как записать качественный CD». Там же вы можете получить представление о ценах на такого рода устройства. — Прим. ред.).

Процесс создания копий можно сравнить с изготовлением некой смеси по рецепту. Если один и тот же текст рецепта напечатать на бумаге разного цвета, шрифтами разных типов и размеров, то эти различия могут повлиять на эмоциональное состояние человека, готовящего смесь, в результате чего он может недомешать, перелить и т.п., даже соблюдая пропорции веществ с достаточной точностью. И как посредством тщательного анализа можно будет обнаружить разницу в составе смесей, так и опытный «слухач» обнаруживает разницу в звучании оригинала и копии одного и того же диска, в то время как рядовой слушатель этой разницы совершенно не замечает.

Справедливости ради следует сказать, что большинство слушателей не замечает разницы даже в звучании оригинального диска и сделанного с него сжатого МР3-файла, а уж там возникают кардинальные различия в кодировании цифровой информации. Это говорит о том, что точным копированием имеет смысл заниматься только в тех случаях, когда крайне важна предельная точность переноса информации и слушатели в состоянии обнаружить ее нарушение.

Разница между дисками CD-DA и CD-ROM

Формат CD-DA — основной, первичный формат, из которого растет целое дерево форматов компакт-дисков (CD-I, Video CD, CD-Text, CD-R, CD-RW и т.п.). Этот формат определяет способ кодирования информации на диске и его структуру — до 99 дорожек, каждая из которых обычно представляет собой одно музыкальное произведение.

Весьма распространено мнение, что на CD-DA якобы нет защиты от ошибок чтения и что, как на грампластинке, любая пылинка или легкая царапинка приводит к сбоям в звуковом потоке, которые исправляются только путем сглаживания (интерполяции), что портит качество звучания диска. Говорят еще, что только на CD-ROM предусмотрены нормальное обнаружение ошибок и их коррекция.

На самом же деле защита от ошибок в формате CD-DA есть, и весьма серьезная: информация как бы размазана по диску, и блоки собственно звуковых данных собираются при чтении из совершенно не смежных между собой кадров низкого уровня, а большинство возникших ошибок исправляются (корректируются) при помощи специального избыточного кода, способного исправлять как единичные, так и множественные ошибки. Избыточность (доля дополнительной информации в ее общем объеме) корректирующего кода Рида-Соломона в CD-DA составляет 25%, а поверх этого кода накладывается еще и канальный код 8/14, так что окончательная избыточность равна 57%. Иными словами, более половины всей информации на диске занимают проверочные и корректирующие данные.

Адресация звуковых блоков (кадров) в CD-DA выполняется по меткам в так называемых подканалах (subchannels), которые кодируются вместе со звуковой информацией. Один кадр имеет длительность 1/75 секунды и вмещает 2352 байтов данных (588 стереофонических звуковых отсчетов).

Формат CD-ROM базируется непосредственно на формате CD-DA. Помимо корректирующей способности CD-DA в CD-ROM имеется еще один уровень защиты от ошибок и их коррекции (дополнительно 12% избыточности), за счет чего надежность чтения CD-ROM заметно возрастает. Впрочем, это тоже не дает никакой гарантии, что хорошо видно на многих китайских дисках, которые надежно читаются только в первые несколько месяцев с момента выпуска. А затем «навороченность» привода уже перестает играть заметную роль, и диск надежно не читается нигде.

Адресация блоков данных в CD-ROM выполняется по специальным адресным заголовкам, которые записываются в каждом кадре CD-DA. Поиск блока происходит вначале грубо, по меткам из адресного подканала, а затем — точно, по адресному заголовку из кадра.

Как происходит чтение с CD-DA и CD-ROM

Чтение информации с CD-DA и CD-ROM — одновременно и очень схожие, и принципиально разные процессы. При чтении CD-DA происходит восстановление кадра (2352 байта), который сразу же подается на цифроаналоговый преобразователь (ЦАП) — в случае воспроизведения, на магистраль данных контроллера — в случае прямого, так называемого сырого (raw), чтения. При чтении CD-ROM восстановленный кадр CD-DA подается на дополнительный декодер, который выделяет из кадра 2048 байтов данных, 288 байтов корректирующего кода и 16 байтов адресного заголовка и при необходимости исправляет возможные ошибки в области данных, используя эти дополнительные байты корректирующего кода.

Задачи привода для разных форматов диска принципиально различны. При чтении CD-ROM необходимо обеспечить абсолютно точное считывание ранее записанного блока данных, даже если для этого потребуется серия повторных чтений, которые нередко сопровождаются перепозиционированием (привод характерно дергается). Если привод не может считать блок за установленное количество попыток, он возвращает признак ошибки, и тогда читающая программа не пытается использовать полученные данные, даже если реально там испорчен всего один бит.

Совершенно иначе дело обстоит при чтении CD-DA в режиме воспроизведения. В этом случае задача привода — постараться не породить паузы в звучании диска, даже ценой замены нескольких ошибочных отсчетов (которые не удалось полностью исправить) на рассчитанные по соседним, правильным отсчетам (интерполированные). На дисках нормального качества, читаемых в хорошем приводе, интерполяция случается редко, а вот на некачественных или поврежденных дисках, а также в приводах низкого качества она происходит почти постоянно.

Таким образом, грамотно построенный привод CD-ROM, читающий диск CD-DA в режиме «грабления», должен работать по совершенно иному алгоритму, нежели в режиме воспроизведения, причем логика работы должна меняться в первичном декодере формата CD-DA, а не во вторичном декодере CD-ROM. К сожалению, далеко не все приводы могут правильно читать CD-DA в режиме прямого чтения (Digital Audio Extraction, DAE) и в результате либо теряют синхронизацию между кадрами, либо отдают в магистраль блоки с интерполированными отсчетами, никак не информируя контроллер об ошибках чтения. Выловить такие ошибки можно только путем многократного (3-5 раз) чтения одних и тех же дорожек диска, с последующим сравнением получившихся файлов.

Тонкости процесса прямого чтения звука


Несмотря на то что адреса дорожек CD-DA в оглавлении диска указаны с точностью до кадра (1/75 секунды), различные приводы по-разному позиционируются на начало читаемого участка, вследствие чего воспроизведение или чтение начинается не точно с начала первого кадра, а на какую-то часть кадра раньше. Причины этого явления недостаточно ясны, поскольку производители не раскрывают точного алгоритма работы контроллеров в своих приводах. Возможно, это связано с тем, что расшифровка кадра происходит постепенно, путем сборки размазанных по потоку данных нижнего уровня кодовых блоков воедино. При различных алгоритмах сборки моменты восстановления адресной метки кадра будут различными; если привод начинает отдавать накопленные во внутреннем буфере звуковые данные сразу же, как произойдет совпадение адресной метки, то читающая программа получит какую-то часть предыдущего кадра, которую еще не успели перекрыть данные текущего кадра.

При прослушивании возникший сдвиг будет незаметен, однако при чтении в файл с помощью разных приводов получаются файлы, различающиеся размером и содержимым небольших (в несколько килобайт) начального и концевого участков. Хорошо хоть, что обычно конкретный привод ошибается на одну и ту же величину и поэтому все копии дорожки, полученные с его помощью, имеют одинаковую длину.

По той же самой причине многие приводы теряют синхронизацию с дорожкой между операциями чтения. Чтение с CD выполняется блоками, включающими целое число кадров, и внутренний буфер привода непрерывно заполняется данными, считанными с дорожки, периодически отдавая их читающей программе. Если программа делает паузу (для записи блока данных на диск или по причине вытеснения другой программой), то объема буфера привода может не хватить для сохранения данных до поступления следующего обращения от программы; в таком случае привод вынужден позиционироваться заново, а из-за неточности самого позиционирования возникает повтор или выпадение серии отсчетов. Надежно сохранять синхронизацию могут лишь немногие из распространенных приводов.

Для борьбы с нарушениями синхронизации используется программное решение — чтение блоков внахлест, когда программа запрашивает каждый очередной блок данных с отставанием и определяет, где начинается очередная нужная последовательность кадров (режим Sync Read). Это позволяет худо-бедно работать с некорректными приводами, однако в несколько раз снижает скорость чтения.

Можно ли точно скопировать звук с компакт-диска

Можно, но это может потребовать значительных затрат времени для подбора и настройки системы копирования. Необходимо правильно подобрать аппаратуру (приводы CD-ROM и CD-R) и программное обеспечение для работы с ними и корректно выполнить все необходимые процедуры.

Для того чтобы дорожки звукового диска были скопированы точно, необходимо выполнение ряда следующих условий:

  • качество поверхности исходного диска должно быть достаточным для его уверенного чтения в данном приводе. Иначе говоря, все ошибки нижнего уровня, которые возникают в процессе чтения, должны быть полностью исправимыми посредством корректирующего кода;
  • используемый для чтения привод должен обладать таким уровнем качества считывающей системы, который будет достаточным для того, чтобы уверенно читать данный диск. Например, со временем в приводах садятся лазеры, загрязняется линза фотоприемника, ухудшается точность следования луча по дорожке и т.п.;
  • читающий привод должен правильно и надежно синхронизироваться по последовательности звуковых кадров либо следует использовать режим программной синхронизации;
  • читающий привод не должен читать данные со смещением либо это смещение следует компенсировать программой чтения;
  • программа записи, преобразующая набор звуковых WAV-файлов в образ звукового диска, не должна вносить в них никаких изменений. Бывает, что некоторые программы могут пытаться самовольно убирать щелчки, обрезать тишину в начале или в конце дорожки, а также незаметно сглаживать фонограмму, чтобы копия не была точной и не нарушались слишком явно авторские права;
  • записывающий привод должен точно и аккуратно записывать на матрицу поданные ему программой звуковые данные, не внося в них ни малейших изменений, не делая лишних пауз в начале/конце дорожки и т.п. Большинство пишущих приводов по непонятной причине создают смещение между адресной информацией и данными, отчего возникает сдвиг начальных адресов звуковых дорожек. Желательно компенсировать смещение программой записи, а если она этого не поддерживает, то сделать это посредством программы чтения.

Критерием правильного копирования может служить совпадение всех WAV-файлов («сграбленных» с копии) и оригинальных файлов (с которых делалась запись) либо исходного и полученного образов всего диска. В таком случае качество копирования считается идеальным. Несовпадение чаще всего обусловлено смещениями данных в читающем и пишущем приводах, которые не удается компенсировать программно; в этом случае копия получается точной по звучанию, однако длительность начальных/концевых пауз на дисках Track-At-Once (TAO) и моменты стыков дорожек на дисках Disk-At-Once (DAO) будут различаться на несколько сотых долей секунды. Этим можно и пренебречь, однако необходимо иметь в виду, что при копировании копий полученные различия будут усугубляться и в конце концов последовательное копирование по цепочке приведет к такому накоплению ошибок на стыках дорожек диска DAO, которое будет восприниматься на слух.

Правовые аспекты цифрового копирования

Не следует забывать, что и по международным, и по российским законам для копирования любой информации, подпадающей под положения об авторском праве, необходимо иметь соответствующую лицензию. Несанкционированное копирование является уголовным преступлением. Разумеется, никто вас не станет преследовать за изготовление нескольких копий с дисков из чьей-то коллекции, однако занятие подобным промыслом в массовом порядке вполне может привести к возбуждению уголовного дела.

Выбор приводов и программ для копирования

Для достижения хороших и повторяемых результатов весь набор железа и софта должен быть правильно подобран и протестирован. Наиболее критичным узлом является пишущий привод (рекордер), поскольку даже если читающий привод не гарантирует точного чтения, то этого в ряде случаев можно добиться простым повторением и последующим выбором одного из нескольких совпадающих файлов.

Рекордеры обычно в состоянии хорошо читать звуковые диски. Например, мой Teac W54E справляется с этим отлично, но при работе в свое время с HP 6020 повторяемости добиться не удалось никакими силами. Тем не менее W54E пишет с постоянным смещением, а HP7010 записывал диски DAO абсолютно точно.

Вообще говоря, после тестирования ряда приводов на точность чтения/записи остается ощущение, что их производители старались как можно больше усложнить пользователям создание точных копий дисков, причем весьма странным способом — чтением и записью со смещением. То есть если бы стояла задача исключить точное копирование звучания, то производители аппаратуры как раз могли бы ввести интерполяцию, повтор или выбрасывание отдельных отсчетов. Это, конечно, изменяет звук на всем протяжении дорожки, однако сами данные почти всегда переносятся точно, а вот их позиции «плавают» на сотые доли секунды, и бороться с таким явлением чрезвычайно сложно.

Из обычных читающих приводов хорошие результаты всегда давали марки Panasonic, Pioneer, Sony, Teac, Plextor. Как правило, они надежно поддерживают синхронизацию, но страдают отклонениями в начальном позиционировании, из-за чего файл, считанный на одном приводе, может отличаться по длине и по содержимому начального участка от файла, считанного на другом приводе. Среди приводов выпуска до 1997-1998 годов (модели до 12x) многие марки, в том числе и вышеперечисленные, не отличались хорошим качеством прямого чтения звука, однако сегодня они стали гораздо лучше и даже таким маркам, как Samsung и Asus, обычно можно доверять. Марки же Mitsumi и особенно BTC, а также других малоизвестных производителей так и остались хотя дешевыми, но малоприятными в работе приводами.

Из программ чтения наиболее известны AudioGrabber (http://www.audiograbber.com-us.net/), Audio Catalyst (http://www.xingtech. com/), Exact Audio Copy, или EAC (http://www.exactaudiocopy.de/), Easy CD-DA Extractor (http://www.poikosoft.com/cdda), WinDAC (http://www.windac.de/). Большая часть этих программ имеет в своем составе кодировщики в форматы MP3/AAC/VQF/WMA и др., но для решения нашей задачи это будет абсолютно лишним. Лично я пользуюсь EAC 0.9 preBeta 9 — компактной и удобной программой, в которой нет никаких «красивостей», зато предусмотрены возможность компенсации смещений, вносимых приводами, а также многие другие полезные функции. По заверениям разработчика, программа EAC создавалась именно для предельно точного копирования звуковых дисков и пока остается единственной в своем роде.

Проверка точности чтения звуковыхданных

Прежде всего необходимо добиться точного и однозначного чтения звуковых данных с диска. Для этого берется диск хорошего качества, достаточно новый, с чистой и неповрежденной поверхностью. Несколько звуковых дорожек с этого диска считываются подряд в файлы с разными именами, после чего сравниваются длина и двоичное содержимое полученных файлов.

Если длины файлов всегда одинаковы, остается лишь сравнить содержимое. В этих целях используются программа FC с ключом /b, которая запускается из окна DOS, функция Advanced Compare в FAR, функция Wave Compare в EAC или что-то подобное. Расхождения будут говорить о том, что привод либо ошибается при чтении, либо «умышленно» подмешивает к считанному звуку почти неслышимый шум, чтобы исключить получение точной цифровой копии.

В случаях когда при одинаковых длинах файлов повторяемости нет или диск читается неуверенно, с повторами, можно попробовать очистить линзу привода. Лучше всего поручить это квалифицированному специалисту, однако при наличии технических навыков это можно сделать и самостоятельно. Аккуратно вскройте привод и промойте линзу кусочком натуральной ваты, смоченным в теплой мыльной воде, после чего столь же осторожно и мягко промокните насухо кусочком мягкой гигроскопичной ткани. На линзе не должно остаться никаких видимых следов загрязнения, и она должна остаться свободно подвешенной на магнитной системе.

Другой способ избавиться от несовпадений — включить режим программной синхронизации в программе чтения. Это значительно замедлит чтение, однако может спасти ситуацию и обеспечить повторяемость. В EAC этот режим задается в параметрах привода (Drive Options) и носит название Secure Mode, в противоположность быстрому Burst Mode.

Если длины считанных файлов различны, это значит, что привод не в состоянии даже начинать и заканчивать чтение на одних и тех же адресах, и поэтому его лучше заменить. Можно, конечно, методом поиска и сравнения определить, совпадают ли основные, серединные, части дорожек, но это весьма сложное и муторное занятие.

Вычисление смещения, вносимого приводами

Наилучший способ определить смещение, вносимое приводом при чтении, воспользоваться специально для этого разработанной функцией EAC, вызываемой из формы параметров привода. Для этого необходимо раздобыть хотя бы один, а лучше два-три эталонных компакт-диска, список которых приведен в файле eac.txt из дистрибутивного архива, а также в файле eacdoc.pdf, который можно отдельно скачать с сайта. Диски лучше брать оригинальные (в списке указаны их выходные фирменные коды). Вставив эталонный диск в привод, нужно запустить его анализ кнопкой Detect read sample offset correction. Если диск опознан успешно, EAC попытается найти на нем эталонный фрагмент (passage), адрес которого заранее известен, и вычислить смещение, вносимое приводом.

Для надежности операцию нужно повторить несколько раз с каждым эталонным диском и затем выбрать наиболее правдоподобную величину смещения. Полученное смещение заносится в параметры привода кнопкой Apply или вручную. Положительное смещение означает, что привод начинает чтение раньше, чем нужно, добавляя лишние отсчеты в начало фрагмента, отрицательное — что он опаздывает, теряя начальные отсчеты.

Если эталонные диски найти не удалось, можно записать несколько тестовых WAV-файлов с известным содержимым где-нибудь на приводе, который заведомо не вносит адресных погрешностей. Тогда разность между адресом начала фрагмента в считанном с диска файле и его началом в исходном файле даст величину смещения в байтах, а количество отсчетов получается делением на четыре. Можно воспользоваться функцией Wave Compare в EAC, которая сама определит величину смещения.

И наконец, если нет доступа к другим пишущим приводам, то придется воспользоваться величиной суммарного смещения (combined offset), вычисленной путем сравнения любого эталонного WAV-файла, записанного в приводе, с файлом, считанным с записанного диска. Однако в этом случае последующее копирование дисков должно полностью выполняться на этом приводе: сначала чтение, а потом запись. Использовать для чтения другой привод — некорректно. Суммарное смещение заносится в поле Combined read/write sample offset, для активизации которого нужно переключить режим коррекции на Use combined read/write sample offset. В этом случае EAC будет корректировать смещение при чтении и расставлять адресные метки при записи таким образом, чтобы результирующие смещения чтения и записи были компенсированы заданным значением.

Автоматизировать процесс определения суммарного смещения можно при помощи программы CDSpeed99 (http://www.cdspeed2000.com/), имеющей функцию создания тестового диска с последующим анализом.

Запись диска

Наиболее популярные программы для записи дисков — Easy CD Creator (http://www.adaptec.com/), WinOnCD (http://www.cequadrat.com/), Nero (http://www.ahead.de/) и т.п. — отлично справляются с записью и копированием дисков CD-ROM, но, к сожалению, очень плохо приспособлены для качественного копирования звуковых дисков. Как правило, эти программы выполняют чтение и запись звуковых данных простейшими способами, даже не пытаясь обнаружить и cкорректировать погрешности приводов. Поэтому для точного копирования звуковых дисков удобнее всего пользоваться «связкой» из EAC и CDRWin (http://www.goldenhawk.com/). В принципе, EAC тоже содержит все необходимые средства для записи дисков, однако эта часть программы пока недостаточно отлажена и часто зависает после окончания записи или стирания диска (хотя диск при этом записывается или стирается полностью и верно).

Возможны два способа копирования звуковых дорожек с диска на диск. При первом способе выбранные дорожки исходного диска читаются в набор WAV-файлов на винчестере, после чего полученные файлы в обычном порядке подаются любой программе записи звуковых дисков. При втором способе формируется один сплошной образ (image) непрерывной звуковой дорожки, для которого создается индексная карта (CUE sheet), где указаны адреса начала каждой из отдельных дорожек диска. По сути, любой рекордер записывает на диск именно непрерывную дорожку, которая потом снабжается индексным указателем (оглавлением, или TOC). Другое дело, что большинство программ записи сами формируют TOC, не давая пользователю доступ к этому процессу.

Наиболее надежным является второй способ, при котором за раз считывается в файл весь образ исходного диска и также за один раз записывается на диск-результат. Все, что нужно в этом случае для компенсации смещений, — это скорректировать адресные метки, что автоматически сделает EAC при создании CUE Sheet. При копировании дисков без пауз, когда дорожки состыкованы без разрыва, лучше воспользоваться именно этим способом. При копировании обычных дисков с паузами можно применить любой способ, однако желательно как можно точнее выставить величину смещения для компенсации.

«Снятие» образа и индексной карты с исходного диска выполняется в EAC функцией Copy image & Create CUE sheet. В результате создаются WAV-файл, содержащий звуковые данные всего диска (с паузами или без пауз — в зависимости от того, как построен диск), и CUE-файл, содержащий адреса отдельных дорожек диска. Если диск был предварительно опознан через базу данных (CDDB), то в файле CUE будут прописаны также названия дорожек вместе с именем автора или наименованием альбома.

Записывать диск-результат из отдельных WAV-файлов можно с помощью практически любой программы записи. При этом следует с осторожностью отнестись к Nero: версия 5.0 в моих экспериментах самовольно обрезала конец последней дорожки. Хорошие результаты при записи из готовых WAV-файлов всегда получались при использовании Easy CD Creator.

Запись из образа и карты выполняется либо в самом EAC функцией Write CD-R, либо в CDRWin. В общих программах есть операция Load CUE Sheet — загрузка карты, после чего остается лишь указать скорость и запустить запись. В этом режиме запись всегда идет методом DAO (Disk-At-Once), когда паузы между дорожками создаются средствами программы, а не рекордера.

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

Если вы владеете английским, постарайтесь внимательно прочитать документацию к EAC, где могут быть описаны важные для вашей системы моменты. В частности, это касается использования режима DMA при работе с рекордером; иногда отключение DMA может помочь избавиться от «плавающих» ошибок.

При правильной настройке EAC и соблюдении всех перечисленных условий на выходе получится диск, дающий при чтении WAV-файлы с точно такими же длинами и содержимым, как и считанные с исходного диска. В ряде случаев возможно расхождение «хвостов» — размера и концевой части последней дорожки, однако эти различия будут за концевой меткой дорожки и не отразятся на ее звучании. Полные образы дисков в больших WAV-файлах, полученных посредством функции Create CUE Sheet, также будут совпадать. Корректно скопированный целиком диск будет также успешно опознаваться при запросах к централизованной базе данных (CDDB), так как для запроса используется совокупность адресов и длин всех звуковых дорожек диска, то есть его индексная карта.

На этапах определения смещений, подбора оптимальных режимов и т.п. лучше всего потренироваться на матрицах CD-RW, если у вас перезаписывающий привод. В противном случае можно испортить десятки обычных матриц, прежде чем система будет настроена должным образом. Перед записью матрицу CD-RW достаточно стереть в режиме Quick Erase, что занимает около минуты. Большинство современных приводов умеют воспроизводить (Play) матрицы CD-RW в формате CD-DA, как и другие звуковые диски, а иногда на это способны и бытовые проигрыватели. Таким образом удобно проверять на слух правильность стыковки дорожек и расстановки пауз между ними.

Если вас преследуют хронические неудачи («плавают» смещения, нет повторяемости и т.п.), можно попробовать обновить прошивку (firmware) привода. Найти обновления можно на сайте производителя привода либо путем поиска в Интернете по марке привода и ключевым словам firmware, update, upgrade, drive и т.п. Перед запуском найденной программы обновления необходимо внимательно прочитать инструкцию и в точности следовать ее рекомендациям, иначе привод можно испортить окончательно.

Как определить, является ли вставленный компакт-диск аудио CD?

С GetLogicalDrives и GetDriveType, я могу перечислить все дисков CD-ROM на моей машине Windows.

Как я могу определить, какие из них содержат Audio CD (в отличие от компакт-дисков с данными или DVD-дисков)?

Возможно, это может помочь:

Определяются данные, хранящиеся на компакт-дисках в секторах. «Нормальный» CD-сектор принимает 2048 байтов (2 КБ). Что нибудь особенно в отношении аудио-компакт-дисков, аудиоданные хранятся в секторах 2352 байт. Это потому один сектор должен хранить 1/75 одного вторых аудио-данных. Требуется одна секунда 176400 байт, поэтому 1/75 требуется 2352 байтов.

Это означает, по крайней мере, для меня, что если размер сектора составляет 2352, это звуковой компакт-диск. Но как говорит Юджин в своем комментарии, что, если это так? НИЛ.:)

Стационарный CD плеер из компьютерного CD-ROM привода

Если у Вас дома валяются без дела CD-ROM, или даже DVD-ROM от старого ПК, не спешите их выкидывать! Возможно, они ещё немного послужат Вам, в качестве полноценного стационарного проигрывателя Audio-CD (Compact Disc player)! И для этого Вам совершенно не понадобится ПК! Небольшое уточнение или даже больше — почти что историческая справка ниже.

Данная идея уже давно гуляет на просторах всемирной паутины и возможно, уже не сильно актуальна в условиях сегодняшних реалий, когда кругом изобилие недорогих флеш-плееров, а балом уже давно правит формат mp3. Однако, я более чем уверена, что есть небольшая категория людей (избранные), которых должна подкупить простота данной задумками и её реализации! Да и потом, если у Вас где-то на стеллаже накопилась приличная кучка старых любимых Аудио-CD (из 90х), то думаю, Вы были бы не прочь, всё это дело иной раз, да прослушать. А тут, как назло, ещё и муз. центр перестал читать диски.

Всё что Вам понадобится для реализации этой несложной идеи CD плеер из компьютерного CD-ROM привода — ваш старый СD-ROM и не менее старый блок питания от ПК! БП в идеале нужен (древний)тот, у которого есть отдельный шнур с кнопкой Power (принудительного включения и выключения), от старых 486-х компов и первых Pentium-ов, чтобы Вы не нуждались в постоянном замыкании чёрного и зелёного пинов (включение) как у современных БП! Иными словами современный блок питания не очень подойдёт для этой задумки, но если другого нет, то можно и современный. Но не забываем, что Вам постоянно придётся замыкать эти 2 пина (например)канцелярской скрепкой, дабы последовала реакция ВКЛ. Помимо компьютерного бп, можно использовать блок питания от старого стационарного DVD-плеера (у которого линза приказала долго жить), там как правило есть 4-х контактный разъём питания Molex, такой же как и у Пк-шного блока питания. Теперь касаемо CD-ROMа. Желательно иметь привод с кнопками Play и Rewind (перемотка)! А ещё, понадобятся активные колонки (типа старых Genius) или наушники. Тут, как говорится, кому что больше нравится.

Единственный минус этой идеи, как я думаю уже многие поняли, это то, что не поддерживается формат mp3, да и вообще все современные типа Flac, ogg vorbis в пролёте и Вам придётся слушать исключительно формат Audio CD! Зато, хороший фирменный аудио-CD звучит всё-таки ощутимо лучше mp3 формата. У меня накопилось довольно много старых фирменных CD, купленных ещё в суровые 90-е годы и большинство из них звучит гораздо лучше любого даже высокобитрейтового 320 kbs Mp3 формата! К тому же, компакт-диски формата Audio CD и по сей день продаются во многих гипермаркетах.

Илон Маск рекомендует:  Что такое код zend_version
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL