Печать
Просмотров: 183

В Pascal ABC есть модуль Sounds.

Вот описание:

Модуль Sounds содержит процедуры и функции для работы со звуком:

Модуль Sounds содержит также класс Sound, имеющий следующий интефейс:

type
  Sound = class
  public
  constructor Create(fname: string);
  destructor Destroy;
  procedure Load(fname: string);
  procedure Play;
  procedure Stop;
  procedure Rewind;
  property IsPlaying: boolean;
  function Length: integer;
end;

Конструкторы и деструкторы constructor Create(fname: string); Создает объект класса Sound и загружает в него звук из файла fname (звуковой файл должен иметь формат .wav). Звук с именем fname ищется вначале в текущем каталоге, а затем в подкаталоге Media\Sounds\ каталога программы PascalABC.exe.
destructor Destroy; Разрушает объект и содержащийся в нем звук.
Свойства property IsPlaying: boolean;

Проигрывается ли звук. Присваивание IsPlaying=False эквивалентно вызову Stop, а присваивание IsPlaying=True - вызову Play.
Методы procedure Load(fname: string); Загружает звук из файла с именем fname. Звук с именем fname ищется вначале в текущем каталоге, а затем в подкаталоге Media\Sounds\ каталога программы PascalABC.exe. Звук, до этого содержащийся в объекте, разрушается.
procedure Play; Начинает проигрывание звука.
procedure Stop; Останавливает проигрывание звука.
procedure Rewind; "Перематывает" звук на начало.
function Length: integer; Возвращает длительность звука в миллисекундах.

Звуки удобнее рассматривать как объекты класса Sound, в котором собраны все основные действия со звуками. Такой подход является более удобным и современным, чем подход с описателями звуков. Единственный его недостаток - необходимость вводить основные понятия, связанные с классами. Подход с описателями позволяет работать со звуками сразу после рассмотрения темы "Процедуры и функции" или даже раньше, если подпрограммы рассматривать просто как команды.

Пример работы со звуком с использованием описателей

uses Sounds;

var n: integer;

begin 
  n:=LoadSound('b.wav'); 
  PlaySound(n); 
  Sleep(SoundTime(n)); 
  DestroySound(n);
end.

Пример работы со звуком с использованием класса Sound

uses Sounds;

var s: Sound;

begin 
  s:=Sound.Create('b.wav'); 
  s.Play;
  Sleep(s.Length); 
  s.Destroy;
end.