Вход/Регистрация
Excel. Трюки и эффекты
вернуться

Гладкий Алексей Анатольевич

Шрифт:

При создании формы Forml воспроизводится звуковой файл start. wav.

В некоторых случаях удобно хранить данные (например, звуковые записи) и использовать их прямо в запускаемом модуле (ЕХЕ-файле). Такой метод предусматривает хранение звука в файлах ресурсов (RES). На этапе сборки программы файлы ресурсов прикрепляются к запускаемому модулю, тем самым увеличивая размер модуля. Но количество файлов, необходимых для корректной работы программы, уменьшается. Так, в предыдущем случае для нормальной работы программы (воспроизведение звука при загрузке) необходим фaйлstart. wav. Следующий пример демонстрирует создание приложения, запускаемый модуль которого будет содержать все необходимые ресурсы, в нашем случае это звуковой файл.

Вначале необходимо создать файл ресурса, содержащий звуковую запись. Для этого понадобится компилятор ресурсов, который находится в кaтaлoгeBorland\ Delphi7\Bin\ и носит имяЬгсс32. ехе. Далее создаем файл ресурса. Все ресурсы (значки, указатели, изображения, таблицы строк и т. п.), используемые приложением, описываются в специальном файле. Такое описание имеет фиксированный формат:

...

<имя> <тип> <параметры> <имя файла>

Имя – это уникальное имя ресурса, которое будет использоваться в процедурах работы с ресурсами. Имя файла – строка, содержащая путь к файлу. В нашем случае строка, описывающая ресурс:

...

LOADSOUND RCDATA LOADONCALL start.wav

Далее в командной строке записываемЬгсс32. ехе source. re, где source. re – текстовый файл, содержащий описание ресурса.

После компиляции получаем готовый файл pecypcasource. RES. Перемещаем его в каталог проекта. На этом этапе ресурс может использоваться.

Чтобы подключить файл ресурса, пишем в исходном тексте:

...

//Подключение ресурса

{$R SOURCE.RES}

Теперь, когда файл ресурса подключен и готов к использованию, необходимо создать функцию, которая будет доставать звуковой файл и воспроизводить его. Тело функции, выполняющей эти действия, выглядит следующим образом (листинг 5.4).

...

Листинг 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), так и пользовательскую анимацию.

5.3. Компонент Animate

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

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

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

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

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

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

  • Читать дальше
  • 1
  • ...
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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