ПредишенСледващото

В тази статия ще се опитам да дадат отговор на три процедури за възпроизвеждане на звука. Използването на тези процедури, TMediaPlayer компонент значително спаси системни ресурси. С помощта на тези процедури може да бъде решен доста широк спектър от задачи. Нека започнем с преглед на тези процедури, най-простите.

процедура Beep

Същността на тази процедура - той може да играе стандартен аудио сигнал е инсталиран на Windows, ако имате звукова карта и звука на стандартния набор, но ако не, тогава звукът ще дойде през високоговорителя на компютъра под формата на кратки кликвания. Може да се използва, например, когато потребителят въведе грешни данни, или когато затворите форма:

Тъй като първата процедура ние разбираме. Сега нека видим втората.

функция MessageBeep

Тази функция е по-сериозен, той се определя като:

параметър UType показва възпроизведената звук като идентификатор на дял [звуци] регистър, който записва звуци, които съпътстват тези или други събития на Windows. параметър UType могат да вземат следните стойности:

  • MB_ICONASTERISK - играе звук "звездичка" (SystemAsterisk)
  • MB_ICONEXCLAMATION - играе звук "Удивителен" (SystemExclamation)
  • MB_ICONHAND - играе звук "Фатална грешка" (SystemHand)
  • MB_ICONQUESTION - играе звук, "Q" (SystemQuestion)
  • MB_OK - играе звук "Стандарт звук" (SystemDefault)

Трябва да се отбележи, че тази функция играе звука асинхронно, т.е. по време на възпроизвеждане на аудио Вашата кандидатура продължава да се изпълнява. След звук искане MessageBeep функция предава управлението на своите посетители.

Ако не можете да пуснете определен звук, функцията ще се опита да възпроизведе звука на стандартната система, по подразбиране, а ако това не е възможно, тогава стандартната сигнал от високоговорителите ще се играе.

И накрая, не е най-интересната и полезна функция на доброто, на което сме сега обсъдим.

функция PlaySound

Тази функция може да играе всеки звук на вълната, а не само на Windows събитие звучи. Функция на Windows API, чиито параметри са описани в mmsystem модул. Следователно, за да използвате тази функция в своите програми, трябва да се включи в клаузата за употреба на mmsystem на модула. функция PlaySound се определя, както следва:

параметър PszSound е нулев прекратено низ (последния знак на низа има нулев код), той определя възпроизведения звук. hmod параметър се използва в случаите, когато звукът идва от ресурса, тъй като ние няма да направи това, то е възможно да се определи това на 0 или нула.

FdwSound последния параметър е настроен, който определя колко звукът се възпроизвежда (режим на възпроизвеждане). Тук е най-важната ценност на този комплект за игра произволни знамена вълна.

  • SND_ASYNC - за възпроизвеждане на звук асинхронно и функцията връща веднага след започване на възпроизвеждане. За да спрете възпроизвеждането на необходимостта да се обадя параметър pszSound на PlaySound функция, равна на 0.
  • SND_LOOP - възпроизвеждане на звука е постоянно повтаря, като в същото време е необходимо да се установи SND_ASYNC флаг.
  • SND_NOSTOP - Ако определен звук не може да бъде възпроизведен поради заетостта на ресурсите, функцията връща веднага фалшива (и няма звук ще се играе). Ако не е посочен този флаг, функцията ще се опита да спре възпроизвеждането на друг звук, за да освободи ресурси.
  • SND_PURGE - Спира всички звуци, причинени от този проблем.
  • SND_SYNC - Синхронно възпроизвеждане на аудио събития. функция PlaySound връща едва след края на пиесата.

Забележка: Flags могат да се комбинират или на работа.

Посоченият параметър pszSound звук, трябва да бъде подходяща за конкретния файл вълна възпроизвеждането, водачът устройство и трябва да се вмести в размера на свободната памет.

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

или чрез създаване на нов звук.

Например, за да се многократно и асинхронно губят всеки звук, избран с OpenDialog, можете да напишете код като този:

Е, надявам се всичко е ясно! Следващият път ще бъде нещо по-сложно и по-интересно!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!