Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №22.pdf
Скачиваний:
30
Добавлен:
16.03.2015
Размер:
1.63 Mб
Скачать

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

Рисунок 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 воспроизведет звук по умолчанию.