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

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

Жанры

Шрифт:

Рис. 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 – количество часов, минут и секунд, размещенных побайтно, начиная с младшего байта, в четырехбайтовом целом. Старший байт не учитывается.

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

Я еще царь. Книга XXX

Дрейк Сириус
30. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.75
рейтинг книги
Я еще царь. Книга XXX

Цитаты из русской истории. От призвания варягов до наших дней. Справочник

Душенко Константин Васильевич
Справочная литература:
прочая справочная литература
6.25
рейтинг книги
Цитаты из русской истории. От призвания варягов до наших дней. Справочник

УЗНИК РОССИИ

Дружников Юрий
Проза:
историческая проза
5.00
рейтинг книги
УЗНИК РОССИИ

Преисподняя

Лонг Джефф
54. Книга-загадка, книга-бестселлер
Фантастика:
научная фантастика
8.29
рейтинг книги
Преисподняя

Брат, стреляй первым!

Колычев Владимир Григорьевич
1. Брат
Детективы:
прочие детективы
7.00
рейтинг книги
Брат, стреляй первым!

Загадка Катилины

Сейлор Стивен
3. Roma sub Rosa
Проза:
историческая проза
5.00
рейтинг книги
Загадка Катилины

Цикл "Отмороженный". Компиляция. Книги 1-14

Гарцевич Евгений Александрович
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Цикл Отмороженный. Компиляция. Книги 1-14

Темная сторона души

Михалкова Елена Ивановна
2. Расследования Макара Илюшина и Сергея Бабкина
Детективы:
прочие детективы
9.33
рейтинг книги
Темная сторона души

Макроскоп

Пирс Энтони
Фантастика:
научная фантастика
5.00
рейтинг книги
Макроскоп

Паладин из прошлого тысячелетия

Еслер Андрей
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.67
рейтинг книги
Паладин из прошлого тысячелетия

33 стратегии войны

Грин Роберт
Научно-образовательная:
психология
история
6.25
рейтинг книги
33 стратегии войны

Кодекс Охотника. Книга XXXVIII

Винокуров Юрий
38. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
юмористическое фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXXVIII

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

Осквернитель

Корнев Павел Николаевич
4. Экзорцист
Фантастика:
фэнтези
боевая фантастика
8.97
рейтинг книги
Осквернитель