PASCAL ABC. Модуль Sounds

  • docx
  • 11.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00395.docx

PASCAL ABC.

Модуль Sounds


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

n:=LoadSound(fname) – загружает звук из файла с именем fname в оперативную память и возвращает описатель звука в целую переменную n (звуковой файл должен иметь формат .wav);

PlaySound(n) – начинает проигрывание звука с описателем n;

StopSound(n) – останавливает проигрывание звука с описателем n;

RewindSound(n) – "перематывает" звук с описателем n на начало;

DestroySound(n) – удаляет звук с описателем n из оперативной памяти, описатель звука при этом становится недействительным;

SoundIsPlaying(n) – возвращает True если звук с описателем n проигрывается и False в противном случае;

SoundLength(n) – возвращает длительность звука с описателем n в миллисекундах.
 

Модуль 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.