Шрифт:
Интервал:
Закладка:
//Создание элементов в 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 – количество часов, минут и секунд, размещенных побайтно, начиная с младшего байта, в четырехбайтовом целом. Старший байт не учитывается.
- Тонкости реестра Windows Vista. Трюки и эффекты - Роман Клименко - Программы
- Google Таблицы. Это просто. Функции и приемы - Евгений Намоконов - Программы
- 200 лучших программ для Linux - Сергей Яремчук - Программы
- Защита вашего компьютера - Сергей Яремчук - Программы
- Видеосамоучитель монтажа домашнего видео в Adobe Premiere Pro CS3 - Александр Днепров - Программы