Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 9 – Настройка звуковой схемы
Функцию PlaySound можно использовать для озвучивания консольных приложений. Ниже приведен пример консольного приложения использующего стандартные звуки
Windows.
Листинг 2
program ConsolePrj; {$APPTYPE CONSOLE}
uses SysUtils, mmSystem;
begin //вход
PlaySound('SystemStart', 0, SND_SYNC); writeln('Press Enter to Exit'); readln;
//выход
PlaySound('SystemExit', 0, SND_SYNC); end.
Компонент TMediaPlayer
представляет собой набор кнопок (рисунок 10)
предназначенных для управления различными мультимедийными устройствами (компактдисками, звуковыми картами и т. п.).
Рисунок 10 – Кнопки компонента TMediaPlayer.
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Компонент TMediaPlayer
находится на вкладке System палитры компонентов (рисунок 11).
Рисунок 11 – Расположение компонента TMediaPlayer в палитре компонентов.
Каждая кнопка компонента имеет собственное имя, позволяющее программисту сделать какую-либо кнопку невидимой или недоступной. В таблице 3 приводится имя и назначение каждой кнопки (под носителем информации подразумеваются файлы и физические устройства, которые могут служить источником или приемником информации).
Таблица 3 – Назначение кнопок компонента TMediaPlayer
Значок |
Имя |
Описание |
кнопки |
кнопки |
|
|
|
|
|
btPlay |
Инициирует воспроизведение носителя информации |
|
btPause |
Прерывает процесс записи или воспроизведения информации. |
|
|
Повторный щелчок на этой кнопке возобновляет прерванный |
|
|
процесс |
|
btStop |
Останавливает запись или воспроизведение |
|
btNext |
Позиционирует устройство на следующую дорожку или конец |
|
||
|
|
носителя информации, если устройство не имеет дорожек |
|
btPrev |
Позиционирует устройство на предыдущую дорожку или в начало |
|
|
носителя информации, если устройство не имеет дорожек |
|
btStep |
Позиционирует устройство на один блок кадров ближе к концу |
|
|
носителя информации. Количество кадров в блоке содержится в |
|
|
свойстве Frames компонента |
|
btBack |
Позиционирует устройство на один блок кадров ближе к началу |
|
|
носителя информации |
|
btRecord |
Начинает запись в носитель информации |
|
btEject Освобождает устройство от носителя информации
Основные свойства компонента TMediaPlayer представлены в таблице 4.
Таблица 4 – Свойства компонента TMediaPlayer
Свойство |
Описание |
|
|
property AutoEnable: Boolean; |
Разрешает/запрещает автоматическое |
|
определение доступных и недоступных кнопок |
property AutoOpen: Boolean; |
Разрешает/запрещает автоматический старт |
|
записи/воспроизведения в момент создания |
|
формы, в которую вставлен компонент |
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Свойство |
Описание |
|
|
|
|
property AutoRewind: Boolean; |
Разрешает/запрещает автоматическую |
|
|
"перемотку" носителя информации в момент |
|
|
начала записи или воспроизведения. |
|
|
Игнорируется, если устройство имеет дорожки |
|
|
или если установлены значения в свойства |
|
|
StartPos и EndPos |
|
TMPDeviceTypes = (dtAutoSelect, |
Содержит тип устройства. Если DeviceTypes = |
|
dtAVIVideo, dtCDAudio, dtDAT, |
dtAutoSelect, тип определяется автоматичен по |
|
dtDigitalVideo, dtMMMovie, dtOther, |
расширению файла в свойстве FileName. В |
|
dtOverlay, dtScanner, dtSequencer, |
момент установки любого мультимедийного |
|
dtVCR, dtVideodisc, dtWaveAudio); |
устройства в файл System.ini заносятся |
|
property DeviceType: |
расширения файлов, которые поддерживаются |
|
этим устройством |
||
TMPDeviceTypes; |
||
|
||
property Display: TWinControl; |
Содержит ссылку на окно для устройств, которые |
|
|
могут его использовать в процессе |
|
|
записи/воспроизведения |
|
property DisplayRect: TRect; |
Содержит область окна, указанного в свойстве |
|
|
Display, которое устройство может использовать |
|
|
для отображения процесса |
|
|
эаписи/воспроизведения. Для улучшения |
|
|
процесса отображения рекомендуется в свойстве |
|
|
DisplayRect указывать размеры, заданные по |
|
|
умолчанию (координаты (0, 0) для правого |
|
|
нижнего угла) |
|
property EnabledButtons: |
Содержит множество доступных кнопок |
|
TButtonSet; |
|
|
property EndPos: LongInt; |
Содержит положение носителя информации в |
|
|
момент прекращения записи или |
|
|
воспроизведения. Переустановка значения |
|
|
приводит к повторению записи или |
|
|
воспроизведения |
|
property Error: LongInt; |
Содержит код ошибки. Доступно только для |
|
|
чтения. |
|
property ErrorMessage: String; |
Содержит сообщение об ошибке. Доступно |
|
|
только для чтения. |
|
property FileName: String; |
Содержит имя читаемого или записываемого |
|
|
файла. |
|
property Frames: LongInt; |
Определяет количество кадров, пропускаемых |
|
|
при выполнении методов Step или Back |
|
property Length: LongInt; |
Содержит текущую длину носителя информации. |
|
|
Доступно только для чтения |
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Свойство |
Описание |
||
|
|
||
TMPModes = (mpNotReady, |
Показывает текущее состояние мультимедийного |
||
mpStopped, mpPlaying, mpRecording, |
устройства: |
||
mpSeeking, mpPaused, mpOpen); |
− mpNotReady – не готово; |
||
property Mode: TMPModes; |
− |
mpStopped – остановлено; |
|
− mpPlaying – воспроизводит информацию; |
|||
|
|||
|
− mpRecording – записывает информацию; |
||
|
− mpSeeking – перемещает носитель |
||
|
− |
информации; |
|
|
mpPaused – приостановлено; |
||
|
− |
mpOpen – открыто. |
|
|
Доступно только для чтения |
||
property Notify: Boolean; |
Содержит значение True, если методы Back, |
||
|
Close, Eject, Next, Open, Pause, PauseOnly, Play, |
||
|
Previous, StartRecording, Resume, Rewind, Step и |
||
|
Stop будут генерировать событие OnNotify |
||
TMPNotifyValues = (nvSuccessful, |
Содержит результат последней команды, |
||
nvSuperseded, nvAborted, nvFailure); |
генерирующей событие OnNotify: |
||
property NotifyValue: |
− nvSuccessful – выполнена успешно; |
||
− nvSuperseded – заменена другой командой; |
|||
TMPNotifyValues; |
|||
− nvAborted – досрочно прервана; |
|||
|
|||
|
− nvFailure – завершилась ошибкой. |
||
|
Доступно только для чтения |
||
property Position: LongInt; |
Содержит текущую позицию носителя |
||
|
информации |
||
property Start: LongInt; |
Содержит позицию от начала носителя, с которой |
||
|
начинается запись или воспроизведение. |
||
|
Определяется в момент открытия устройства и |
||
|
доступно только для чтения |
||
property StartPos: LongInt; |
Содержит текущую позицию от начала носителя, |
||
|
с которой начинается запись или |
||
|
воспроизведение |
||
TMPTimeFormats = (tfMilliseconds, |
Определяет формат представления данных в |
||
tfHMS, tfMSF, tfFrames, tfSMPTE24, |
свойствах StartPos, Length, Position, Start и EndPos |
||
tfSMPTE25, tfSMPTE30, |
(см. пояснения далее) |
||
tfSMPTE30Drop, tfBytes, tfSamples, |
|
|
|
tfTMSF); |
|
|
|
property TimeFormat: |
|
|
|
TMPTimeFormats; |
|
|
|
property TrackLength[TrackNum: |
Возвращает длину (в формате TimeFormat) |
||
Integer]: LongInt; |
дорожки с индексом TrackNum. Доступно только |
||
|
для чтения. |
||
property TrackPosition[TrackNum: |
Возвращает стартовую позицию (в формате |
||
Integer]: LongInt |
TimeFormat) дорожки с индексом ТrаскNum. |
||
|
Доступно только для чтения |
||
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Свойство |
Описание |
|
|
property Tracks: LongInt; |
Содержит количество дорожек в открытом |
|
устройстве. Доступно только для чтения. |
property VisibleButtons: TButtonSet; Содержит множество видимых кнопок. property Wait: Boolean;
Если свойство AutoEnable имеет значение True, компонент автоматически по типу устройства или расширению файла и значению свойства Mode определяет, какие кнопки будут доступны пользователю. Если свойство AutoEnable имеет значение False, доступными будут только те кнопки, которые входят в множество EnabledButtons. Множество EnabledButtons игнорируется, если свойство AutoEnable имеет значение
True.
Свойство AutoRewind игнорируется, если устройство имеет дорожки и если процесс записи/воспроизведения вызван изменением значения в свойстве StartPos или EndPos.
Свойство Display позволяет указать компонент (обычно – панель TPanel), который будет служить "экраном" для отображения видеочасти файлов типа AVI. Таким образом, в отличие от компонента TAnimate, компонент TMediaPlayer может воспроизводить и звук, и изображение одновременно.
Положение носителя в свойствах StartPos, Length, Position, Start и End в зависимости от значения свойства TimeFormat должно интерпретироваться следующим образом (отсчет ведется от начала носителя информации):
−tfMilliseconds – миллисекунды в диапазоне от 0 до 4 294 967 295;
−tfHMS – часы, минуты, секунды (занимают в порядке перечислениям одному байту начиная с младшего; старший байт LongInt не используется.
−tfMSF – минуты, секунды и кадры (занимают в порядке перечисления по одному байту начиная с младшего; старший байт LongInt не используется);
−tfFrames – кадры в диапазоне от 0 до 4 294 967 295;
−tfSMPTE24 – часы, минуты, секунды и количество блоков по 24 кадра в секунду (занимают в порядке перечисления по одному байту, начиная с младшего);
−tfSMPTE25 – часы, минуты, секунды и количество блоков по 25 кадров в секунду;
−tfSMPTE30 – часы, минуты, секунды и количество блоков по 30 кадров в секунду;
−tfSMPTE30Drop – часы, минуты, секунды и количество пропущенных блоков по 30 кадров в секунду;
−tfBytes – байты в диапазоне от 0 до 4 294 967 295;
−tfSamples – количество условных блоков информации в диапазоне от 0 до 4 294 967 295;
−tfTMSF – дорожки, минуты, секунды и кадры (занимают в порядке перечисления по одному байту, начиная с младшего).
Свойство TimeFormat в окне инспектора объектов недоступно и устанавливается автоматически при открытии мультимедийного устройства методом Open. В связи с этим значения в свойствах StartPos, Position и EndPos могут устанавливаться, а в свойствах Length, Start, TrackLength и TrackPosition становятся действительными только после