Чтение онлайн

на главную - закладки

Жанры

Шрифт:

Рис. 4.11. Пример извлеченных из ЕХЕ-файла значков

...

Листинг 4.38. Составление списков значков и их отображение

procedure TForm1.cmbLoadIconClick(Sender: TObject);

var

i: Integer;

item: TListItem;

begin

lvwIconsLg.Clear;

lvwIconsSm.Clear;

//Загрузка значков в ImageList

ImageListLg.Clear;

ImageListSm.Clear;

LoadIcons(txtFile.Text, ImageListLg, ImageListSm);

//Создание элементов в ListView с большими и малыми значками

for i := 0 to ImageListLg.Count – 1 do

begin

item := lvwIconsLg.Items.Add;

item.Caption := \'Icon\' + IntToStr(i+1);

item.ImageIndex := i;

item := lvwIconsSm.Items.Add;

item.Caption := \'Icon\' + IntToStr(i+1);

item.ImageIndex := i;

end;

end;

Подразумевается,

что имена элементов управления ListView: для отображения больших значков – lvwIconLg и для отображения малых lvwIconSm. На форме также расположены два элемента управления ImageList: ImageListLg для хранения больших и ImageListSm для хранения малых значков.

С помощью окна Object Inspector список ImageListLg назначен в качестве источника больших изображений (свойство Largelmages) для lvwIconLg. Соответственно, список ImageListSm назначен в качестве источника малых изображений (свойство Smalllmages) для lvwIconSm.

Глава 5 Мультимедиа

• Воспроизведение звука с помощью системного динамика

• Использование компонента MediaPlayer

• Компонент Animate

• Разработка звукового проигрывателя

• Видеопроигрыватель

Использование мультимедийных технологий позволяет повысить качество программ и придает им профессиональный вид, более привлекательный для пользователя. Среди разнообразных применений мультимедиа наиболее интересны аудио– и видеовозможности компьютера. Использование звуков и видео в программах позволяет иным образом взаимодействовать с пользователем: озвучивать его действия, информировать о некоторых событиях, просматривать видеоролики и т. п.

В рамках предложенной главы будут рассмотрены основные возможности мультимедийных средств и компонентов среды Delphi. Будут описаны компоненты Animate и MediaPLayer, использование API-функций для генерации звука системным динамиком и для воспроизведения звука из ресурсных файлов.

В отличие от языков Turbo Pascal и Borland Pascal, Delphi не содержит процедур типа Sound и NoSound, предназначенных для работы со звуком. Для использования мультимедийных возможностей компьютера в Delphi служат специальные компоненты Animate и MediaPLayer.

Компонент MediaPLayer является основным элементом воспроизведения аудио– и видеофайлов. Многофункциональный элемент MediaPLayer обладает рядом важных характеристик (свойств) и обеспечивает управление мультимедийными устройствами.

Для создания и воспроизведения простейшей анимации предназначен компонент Animate. Он позволяет воспроизводить файлы в формате AVI (Audio-Video Interleaved – Аудио– и видеосмесь).

5.1. Воспроизведение звука с помощью системного динамика

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

...

Листинг 5.1.

Генерация звукового сигнала посредством функции Веер

procedure TForm1.Button1Click(Sender: TObject);

begin

Beep; //Генерация звукового сигнала

MessageDlg(\'Звуковой сигнал был подан\', mtError, [mbOK], 0);

end;

Наряду с Веер для получения звукового сигнала используется API-функция MessageBeep (uType: UINT): Boolean, генерирующая стандартный системный звук, тип которого указывает параметр uType. Параметр функции MessageBeep может задаваться двумя способами: в виде шестнадцатеричного числа или поименованной константы. Например, системный звук по умолчанию задается константой МВ_ОК, а стандартный системный звук задается шестнадцатеричным числом $ FFFFFFFF. Функция возвращает параметр типа Boolean, который в случае успешного выполнения (воспроизведения звука) равен True.

5.2. Использование компонента MediaPlayer

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

Компонент MediaPlayer содержит следующие кнопки (рис. 5.1, слева направо).

• Play – воспроизведение.

• Pause – пауза.

• Stop – остановка.

• Next – переход к следующей фонограмме (дорожке). Для случая одной фонограммы

выполняется переход в ее конец.

• Prev – переход к предыдущей фонограмме. Для случая одной фонограммы выполняется переход в ее начало.

• Step – переход на несколько кадров вперед.

• Back – возврат на несколько кадров назад.

• Record – включение режима записи.

• Eject – извлечение носителя.

Рис. 5.1. Вид компонента MediaPlayer

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

• AutoOpen – определяет, должно ли устройство автоматически открываться сразу после загрузки.

• AutoRewind – если равно True, то после завершения воспроизведения файла будет переход на его начало.

• DeviceType – определяет тип устройства, которым должен управлять объект MediaPlayer. Принимает одно из следующих значений:

– dtAVIVideo – файл AVI;

– dtCDAudio – аудио компакт-диски;

– dtDAT – цифровой кассетный аудиопроигрыватель;

– dtDigitalVideo – цифровое видео (AVI, MPG, MOV-файлы или ММ-фильм);

– dtMMMovie – формат multimedia movie;

– dtOther – неопределенный формат;

– dtSequencer – MIDI-файл;

– dtVCR – видеомагнитофон;

– dtVideodisc – проигрыватель видеодисков;

– dtWaveAudio – звуковой файл типа WAV;

– dtAutoSelect – компонент выбирает устройство автоматически, устанавливается по умолчанию.

• Display – задает оконный элемент, в котором будет происходить воспроизведение видеоданных. Если свойство не задано, то будет открываться новое дополнительное окно.

• DisplayRec – задает прямоугольную область для воспроизведения данных.

• EnableButtons – определяет набор командных кнопок, которые можно использовать в компоненте.

• StartPos – определяет начальную позицию для воспроизводимых данных. Если не задано, то воспроизведение идет сначала.

• EndPos – определяет конечную позицию для воспроизведения данных. Если не задано, то воспроизведение идет до конца.

• Position – текущая позиция при воспроизведении.

• Tracks – определяет количество дорожек для компакт-дисков.

• Frames – определяет число кадров, на которое перемещается позиция устройства при вызове методов Back и Next.

• Length – длина файла (носителя).

• TimeFormat – устанавливает временной формат, используемый конкретным устройством.

• Wait – определяет, будет управление возвращено вызывающему приложению немедленно или после завершения воспроизведения.

Одним из важных свойств является Capabilities типа TMPDevCapsSet, которое позволяет определить возможности выбранного и открытого устройства. Это свойство может принимать следующие значения, устанавливающие доступность соответствующих операций:

• mpCanE j ect – извлечение носителя;

• mpCanPlay – воспроизведение;

• mpCanRecord – запись на носитель;

• mpCanStep – перемотка вперед или назад определенного количества кадров;

• mpUsedWindow – использование окна для вывода изображения.

Перед использованием устройства его нужно открыть, поскольку большинство методов, например Play и StartRecording, можно вызвать только после открытия устройства. Оно выполняется путем вызова метода Open (листинг 5.2). Если необходимо выполнить автоматическое открытие устройства, то свойству AutoOpen типа Boolean следует присвоить значение True (по умолчанию присвоено значение Fal s е). После открытия какого-либо устройства свойство Devi s е ID типа Wo г d проигрывателя определяет идентификатор этого устройства. Если открытых устройств нет, то значение свойства DeviselD равно 0.

...

Листинг 5.2.

Открытие проигрывателя компакт-дисков

procedure TForm1.Button2Click(Sender: TObject);

begin

//Задаем устройство воспроизведения

MyMediaPlayer.DeviceType := dtCDAudio;

//Открываем устройство

MyMediaPlayer.Open;

end;

После завершения использования мультимедийного устройства его нужно закрыть, вызвав метод Close.

После открытия устройства с помощью свойства Tracks типа Longint можно получить информацию о количестве фонограмм (дорожек). Если устройство не поддерживает дорожки, то значение этого свойства неопределенно. Свойство TrackLength ITrackNum: Integer] типа Longint содержит длину фонограммы с индексом TrackNum (отсчет начинается с единицы). Длина дорожки указывается в формате времени, который определен свойством TimeFormat.

Свойство TimeFormat типа TMPTimeFormats задает формат значений свойств, которые связаны со временем. Оно влияет на способ интерпретации и отображение значений таких свойств, как TrackLength, Length, StartPos, EndPos и Position. Основными значениями свойства TimeFormat являются следующие.

• tfMilliseconds – целое четырехбайтовое число, счетчик миллисекунд.

• tfHMS – количество часов, минут и секунд, размещенных побайтно, начиная с младшего байта, в четырехбайтовом целом. Старший байт не учитывается.

Поделиться:
Популярные книги

Солнечный флот

Вайс Александр
4. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Солнечный флот

Неучтенный элемент. Том 4

NikL
4. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 4

Адвокат Империи 11

Карелин Сергей Витальевич
Адвокат империи
Фантастика:
городское фэнтези
альтернативная история
рпг
дорама
попаданцы
5.00
рейтинг книги
Адвокат Империи 11

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Третий Генерал: Том IX

Зот Бакалавр
8. Третий Генерал
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Третий Генерал: Том IX

Сильнейший Столп Империи. Книга 3

Ермоленков Алексей
3. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 3

Родословная. Том 3

Ткачев Андрей Юрьевич
3. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Родословная. Том 3

Мастер 10

Чащин Валерий
10. Мастер
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 10

Черный Маг Императора 17

Герда Александр
17. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Черный Маг Императора 17

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Двойник короля 18

Скабер Артемий
18. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 18

Зодчий. Книга IV

Погуляй Юрий Александрович
4. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Зодчий. Книга IV

Моров. Том 5

Кощеев Владимир
4. Моров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Моров. Том 5

География растений

Гумбольдт Александр
Классики естествознания
Научно-образовательная:
ботаника
7.50
рейтинг книги
География растений