Паскал - работа със звук - Училище N61 овск

Pascal ABC има модулЗвуци.

МодулътЗвуцисъдържа процедури и функции за работа със звук:

  • n := LoadSound(fname)- зарежда звука от файла с име fname в RAM и връща звуковия дескриптор към целочислената променливаn(звуковият файл трябва да е във формат.wav);
  • PlaySound(n)- започва възпроизвеждане на звук с дескрипторn;
  • StopSound(n)- спира възпроизвеждането на звука с дескрипторn;
  • RewindSound(n)- "превърта" звука с дескриптораnкъм началото;
  • DestroySound(n)- изтрива звука с дескриптораnот RAM, звуковият дескриптор става невалиден;
  • SoundIsPlaying(n)- връща True, ако се възпроизвежда звукът с дескрипторnиFalseв противен случай;
  • SoundLength(n)- връща продължителността на звука с дескрипторnв милисекунди.

МодулътЗвуцисъщо съдържа класаЗвук, който има следния интерфейс:

Конструктори и деструкториСъздава обект от класаSoundи зарежда звука от файлаfnameв него (звуковият файл трябва да е във формат.wav). Звукът с името fname се търси първо в текущата директория, а след това в поддиректориятаMedia\Sounds\на програмната директорияPascalABC.exe.
деструкторУнищожи;Унищожава обекта и звука, който съдържа.
ИмотисвойствоIsPlaying: boolean;

Възпроизвежда ли се звукът. ПрисвояванетоIsPlaying=Falseе еквивалентно на извикването наStop, а присвояванетоIsPlaying=Trueе еквивалентно на извикването наPlay.МетодипроцедураЗареждане(fname: низ);Зарежда звук от файл с имеfname. Звукът с имеfnameсе търси първо в текущата директория и след това в поддиректориятаMedia\Sounds\на програмната директорияPascalABC.exe. Звукът, съдържащ се преди това в обекта, се унищожава.процедураВъзпроизвеждане;Започва да възпроизвежда звук.процедураСтоп;Спира възпроизвеждането на звук.процедураНазад;"Назад" звук към началото.функцияДължина: цяло число;Връща продължителността на звука в милисекунди.

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

Пример за работа със звук с помощта на дескриптори

Пример за работа със звук с помощта на класаЗвук