Читаем Delphi. Трюки и эффекты полностью

Листинг 5.4.

Использование ресурсов для хранения звуковых записей

//Функция, которая воспроизводит звук, находящийся в ресурсе

procedure RetrieveLoadSound;

var

hResource : THandle;

pData : Pointer;

begin

//Загружаем файл ресурса и находим звук под именем \'LOADSOUND\'

hResource := LoadResource( hInstance, FindResource(hInstance,

\'LOADSOUND\', RT_RCDATA));

try

//Находим адрес загруженного ресурса

pData := LockResource(hResource);

if pData = nil then raise Exception.Create(\'Ошибка чтения

ресурса LOADSOUND\');

//Воспроизводим звуковой файл

sndPlaySound(pData, SND_MEMORY);

finally

//Освобождаем ресурс

FreeResource(hResource);

end;

end;

Для работы функции RetrieveLoadSound понадобятся две следующие переменные: hResource (дескриптор ресурса) и pData (указатель на память, расположение ресурса). Перед использованием ресурса производится его загрузка (функция LoadResource). Но чтобы загрузить именно тот ресурс, который нам необходим (звук LOADSOUND), с помощью функции FindResource ищем его в ресурсах, подключенных к этому экземпляру приложения (hlnstance). Далее получаем указатель на память, в которой находится звуковой файл, и записываем его в переменную pData. Если ресурс не найден, то программа выдаст сообщение об ошибке.

После того как был получен указатель на память, его можно использовать в функции sndPlaySound для воспроизведения звука. Параметр SND_MEMORY говорит о том, что воспроизведение будет осуществляться из памяти.

Функция RetrieveLoadSound может использоваться в любом месте программы для воспроизведения start. wav. В этом случае данные звукового файла будут находиться в запускаемом модуле, увеличивая его объем, но сокращая количество файлов приложения. Такой подход эффективен при создании небольших приложений, которые снабжаются короткими звуковыми сопровождениями.

В конце главы будет подробно описан процесс создания универсального проигрывателя, работа которого целиком построена на использовании компонента MediaPlayer. Далее рассмотрим следующий мультимедийный компонент Delphi – Animate, который позволяет воспроизводить как стандартную (встроенную в Windows), так и пользовательскую анимацию.

<p>5.3. Компонент Animate</p>

Видеоклип представляет собой файл в формате AVI, содержащий последовательность отдельных кадров, при отображении которых создается эффект движения. Наряду с изображением AVI-файлы могут содержать звук. Для воспроизведения видеоклипов можно использовать любой из компонентов – Animate или MediaPLayer.

Компонент Animate позволяет проигрывать AVI-файлы, а также отображать стандартную анимацию, используемую в Windows. AVI-файлы, воспроизводимые компонентом Animate, имеют следующие ограничения:

• они не должны содержать звука;

• информация в них не должна быть сжатой;

• размер файла не должен превышать 64 Кбайт.

Для задания воспроизводимого видеоклипа используются свойства FileName и CommonAVI. В один момент можно использовать только одно из этих свойств. Проигрываемый AVI-файл, существующий на диске, указывается путем задания свойства FileName, при этом свойству CommonAVI автоматически присваивается значение aviNone. Свойство CommonAVI позволяет выбрать один из стандартных клипов Windows и принимает следующие значения:

• aviNone – отсутствие стандартной анимации;

• aviCopyFile – копирование файла;

• aviCopyFiles – копирование файлов;

• aviDeleteFile—удаление файла;

• aviEmptyRecycle – очистка Корзины;

• aviFindComputer – поиск компьютера;

• aviFindFile – поиск файла;

• aviFindFolder – поиск папки;

• aviRecycleFile – перемещение файла в Корзину.

При присвоении свойству CommonAVI значения, отличного от aviNone, свойство FileName автоматически сбрасывается, принимая в качестве значения пустую строку.

Для задания видеоклипа также можно использовать ResHandle типа THandle и ResID типа Integer, которые составляют альтернативу свойствам CommonAVI и FileName. Значение ResHandle задает ссылку на модуль, в котором содержится изображение в виде ресурса, а значение свойства ResID в этом модуле указывает номер ресурса.

После выбора видеоклипа свойства FrameCount, FrameHeight и FrameWidth типа Integer определяют следующие параметры клипа: количество, высоту и ширину кадров (в пикселах) соответственно. Эти свойства являются свойствами времени выполнения, следовательно, доступны только для чтения.

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных