Материал: Лабораторная работа №22 Таймер, анимация, звук и видео

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Рисунок 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

Компонент 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.

 

Доступно только для чтения

Если содержит значение True, управление возвращается в программу только после завершения перехода устройства в другое состояние, связанное с методом Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step или Stop.

Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»

Свойство

Описание

 

 

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 становятся действительными только после