- •Введение
- •Компонент TTimer
- •Создание анимации
- •Использование спрайтов
- •Использование компонента TImage
- •Использование маски спрайта
- •Использование компонента TImageList
- •Воспроизведение звуковых и видеофайлов
- •Функция MessageBeep
- •Функция PlaySound
- •Компонент TMediaPlayer
- •Задания к лабораторной работе
- •Вопросы к лабораторной работе
- •Справочные таблицы
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 7 – Выбор «прозрачного» цвета для изображения.
Воспроизведение звуковых и видеофайлов
Функция MessageBeep
Иногда требуется воспроизвести короткий звуковой сигнал для привлечения внимания пользователя программы – например, после завершения длительного по времени процесса обновления данных. Стандартная для Delphi процедура без параметров Beep извлекает сигнал из системного динамика только в том случае, если компьютер не оснащен звуковой картой. С другой стороны, мощные возможности компонента TMediaPlayer кажутся излишними для решения этой задачи на компьютерах, оснащенных звуковой картой. В этом случае может пригодиться API-функция MessageBeep, с помощью которой в 32разрядных версиях Windows озвучиваются стандартные диалоговые окна.
function MessageBeep(idSound: word): Boolean;
Единственным параметром обращения к этой функции является один из идентификаторов стандартного звука приведенных в таблице 1.
Таблица 1 – Идентификаторы для стандартных звуков
Значение |
Описание |
|
|
-1 |
Игнорирует звуковую карту и извлекает короткий звуковой сигнал |
|
из системного динамика |
mb_IconAsterisk |
Произошла ошибка |
mb_IconExclamation Произошла ошибка
mb_IconHand |
Запрос на выбор параметра |
mb_IconQuestion |
Запрос подтверждения |
mb_Ok |
Успешное завершение операции |
Сразу после обращения функция возвращает управление программе и воспроизводит звук асинхронно.
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Функция PlaySound
Значительно более богатые возможности по проигрыванию звуковых файлов имеет функция PlaySound, которая способна воспроизводить любые звуковые клипы.
Объявление функции имеет следующий вид:
function PlaySound(pszSound: PChar; hmod: HINST; fdwSound:Cardinal): Boolean;
гдеpszSound – имя воспроизводимого файла;
hmod – дескриптор программы, если звук берется из ресурсного файла противном случае содержит 0);
fdwSound – параметр, уточняющий воспроизведение.
Параметр fdwSound может принимать значения или их комбинацию приведенные в таблице 2.
Таблица 2 – Некоторые возможные значения параметра fdwSound.
Значение |
Описание |
|
|
SND_ASYNC |
Звук воспроизводится асинхронно (функция возвращает управление |
|
сразу после обращения к ней) |
SND_LOOP |
Звук воспроизводится постоянно до тех пор, пока не вызвана та же |
|
функция с параметром pszSound, равным ‘’ |
SND_NOSTOP |
Функция пытается воспроизвести звук, если устройство не занято; в |
|
противном случае не воспроизводит ничего (если устройство |
|
занято, но этот параметр не указан, функция прервет |
|
воспроизведение предыдущего звука и начнет воспроизведение |
|
следующего) |
SND_NOWAIT |
Если устройство занято, функция не будет воспроизводить новый |
|
звук |
SND_PURGE |
Прекращает воспроизведение всех звуков для данной задачи |
SND_SYNC |
Воспроизводит звук синхронно и возвращает управление только |
|
после окончания его воспроизведения |
SND_NODEFAULT |
Отменить проигрывание звука по умолчанию. Если указанный |
|
звуковой файл не найден, PlaySound завершает работу без |
|
проигрывания звука по умолчанию. |
SND_MEMORY |
Звуковой файл загружен в ОЗУ. Параметр fdwSound должен |
|
содержать указатель на звуковые данные. |
SND_APPLICATION Звук проигрывается с использованием приложения ассоциированного с этим файлом
SND_ALIAS |
Параметр fdwSound содержит идентификатор системного события |
|
описанного в реестре или в файле Win.ini. Нельзя использовать |
|
совместно с SND_FILENAME или SND_RESOURCE |
SND_RESOURCE |
Параметр fdwSound содержит идентификатор ресурса, параметр |
|
hmod должен содержать дескриптор загруженного экземпляра |
|
ресурса. |
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Параметр fdwSound может содержать несколько опций одновременно (для объединения используется логическая операция or). В случае успешного выполнения результат возвращаемый функцией равен True, иначе False.
Рассмотрим несколько простых примеров использования функции PlaySound. Озвучим программу, приведенную в листинге 1.
Добавьте в список модулей модуль mmSystem. Измените, обработчик OnCreate формы как показано ниже
procedure TfrmAirPlane.FormCreate(Sender: TObject); begin
//двойная буферизация
DoubleBuffered:=True; //загрузка изображений
LoadImages; //расчет координат
CalcNewCoord(x, y); //включаем звук
PlaySound('ir_inter.wav', 0, SND_LOOP or SND_ASYNC); end;{FormCreate}
Параметр fdwSound содержит флаг SND_LOOP поэтому звук будет повторяться бесконечно. Кроме того установка флага SND_ASYNC приводит к асинхронному выполнению функции PlaySound, т.е. звук будет воспроизводится в фоновом режиме (параллельно с основной программой).
Измените обработчик события OnDestroy формы как показано ниже.
procedure TfrmAirPlane.FormDestroy(Sender: TObject); begin
//уничтожение созданных растров
Background.Free;
Mask.Free;
Sprite.Free;
//проигрываем стандартный звук при выходе из системы
PlaySound('SystemExit', 0, SND_SYNC); end;{FormDestroy}
В данном примере проигрывается стандартный звук, проигрываемый при выходе из операционной системы. Обратите внимание на то, что звук проигрывается в синхронном режиме (SND_SYNC). Это необходимо для того, чтобы приложение было выгружено из памяти после завершения проигрывания звука. Если попытаться проиграть звук в асинхронном режиме, то сразу после вызова функции PlaySound, до завершения ее работы, управление получит основная программа которая завершит свое выполнение. При этом будет принудительно остановлено выполнение функции PlaySound и звук, скорее всего, не будет воспроизведен.
При воспроизведении стандартных звуков необходимо чтобы была настроена звуковая схема. Сделать это можно в панели управления с помощью раздела «Звук и мультимедиа» (рисунок 8).
Лабораторные работы по информатике для специальности «Моделирование и исследование операций в организационно-технических системах»
Рисунок 8 – Панель управления
Настроить звуковую схему можно на вкладке «Звуки» раздела «Звук и мультимедиа» (рисунок 9). Если событию не сопоставлен ни один звук, то функция PlaySound воспроизведет звук по умолчанию.