Валентин Озеров

Книги → Советы по Delphi. Версия 1.4.3 от 1.1.2001 → Мультимедиа 

Звук 

Заставьте приложение Delphi 2 `петь`

Delphi 2 

Тема: Как заставить приложение Delphi 2 `петь`.

Данный совет демонстрирует четыре различных способа как заставить ваше Delphi 2.0 приложение `петь`, т.е. загружать и проигрывать звуковой файл:

1. Для проигрывания звукового файла используйте непосредственно функцию sndPlaySound().

2. Считывайте звуковой файл в память, затем для его проигрывания используйте sndPlaySound().

3. Используйте sndPlaySound для непосредственного проигрывания звуковых файлов, расположенных в файлах ресурсов, прилинкованных к вашему приложению.

4. Считывайте звуковой файл, располагаемый в файле ресурса, прилинкованному к вашему приложению, в память, и затем для его проигрывания используйте sndPlaySound().

Для построения проекта вам понадобиться:

1. Создайте звуковой файл с именем 'hello.wav' в каталоге проекта.

2. Создайте текстовый файл с именем 'snddata.rc' в каталоге проекта.

3. Добавьте следующую строку к файлу 'snddata.rc': HELLO WAVE hello.wav.

4. В dos-сессии перейдите в ваш каталог приложения и скомпилируйте .rc-файл, используя компилятор ресурсов Borland (brcc32.exe): введите путь к brcc32.exe и передайте 'snddata.rc' в качестве параметра.

Пример:

bin\brcc32 snddata.rc

Это создаст файл 'snddata.res', который Delphi слинкует с EXE-файлом вашего приложения.

Далее приведен необходимый вам код:

unit PlaySnd1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type TForm1 = class(TForm)

 PlaySndFromFile: TButton;

 PlaySndFromMemory: TButton;

 PlaySndbyLoadRes: TButton;

 PlaySndFromRes: TButton;

 procedure PlaySndFromFileClick(Sender: TObject);

 procedure PlaySndFromMemoryClick(Sender: TObject);

 procedure PlaySndFromResClick(Sender: TObject);

 procedure PlaySndbyLoadResClick(Sender: TObject);

private

 { Private declarations }

public

 { Public declarations }

end;

var Form1: TForm1;

implementation

{$R *.DFM}

{$R snddata.res}

uses MMSystem;

procedure TForm1.PlaySndFromFileClick(Sender: TObject);

begin

 sndPlaySound('hello.wav', SND_FILENAME or SND_SYNC);

end;

procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);

var

 f: file;

 p: pointer;

 fs: integer;

begin

 AssignFile(f, 'hello.wav');

 Reset(f,1);

 fs := FileSize(f);

 GetMem(p, fs);

 BlockRead(f, p^, fs);

 CloseFile(f);

 sndPlaySound(p, SND_MEMORY or SND_SYNC);

 FreeMem(p, fs);

end;

procedure TForm1.PlaySndFromResClick(Sender: TObject);

begin

 PlaySound('HELLO', hInstance, SND_RESOURCE or SND_SYNC);

end;

procedure TForm1.PlaySndbyLoadResClick(Sender: TObject);

var

← предущий раздел следующая →

Страницы раздела: 1 2

Публикация компанией Dropbox кода Zulip – средства общения для IT-разработчиков

20.11.2015
Одной из одобрительно встреченных программистами инициатив, реализующихся в рамках акции Hack Week, стала публикация исходного кода приложения Zulip – веб-приложения для общения между собой разработчиков в сфере IT-технологий.

Объединение ОС Android и Chrome

17.11.2015
Слухи об объединении двух крупнейших ОС компании Google, Android и Chrome, гуляют по Интернету уже более 5 лет, но до сих пор этого не случилось, хотя очевидно, что с течением времени эти ОС становятся всё более похожими: так, в последнее время появилось немало Android-устройств, к которым прилагаются клавиатуры, а Chrome OS «научилась» работать с сенсорными экранами.

Конференция Linux Piter 2015

15.11.2015
Уже почти через неделю в Санкт-Петербурге впервые в истории пройдёт конференция, посвящённая проблемам свободного программного обеспечения – Linux Piter 2015.