PDA

Просмотр полной версии : Программа со звуком



SLICK
31.03.2009, 21:48
Мне очень нужна программа со звуком, ну как бы программа, када запускаеш играет какая то песня..
Так как у меня на компьютере почемуто не воспроизводиться звук..
Пожалусто мож у кого то есть???:rolleyes::confused:

dr.Jekill
01.04.2009, 01:38
В паскале нет возможности проигровать сторониие звуки, если только через внутренний динамик. А так можно запустить любую прогу (напрмер Winamp).
exec(path,params);Параметр path — полное имя загружаемого файла, params — параметры. Если внешняя программа запускается без параметров, то params — пустая строка (два подряд идущих апострофа).

Naeel Maqsudov
01.04.2009, 02:21
dr.Jekill, он ищет любую программу, чтобы звук у себя потестировать :) Я так думаю...
SLICK, уточните вопрос.

dr.Jekill
01.04.2009, 02:43
Если у тебя нет звука то переустанови драйвер на звуковуху! И вообше ответ не в тему (я думаю ты не хочешь чтобы мы писали verifier)?!

SLICK
01.04.2009, 14:08
нет, мне нужна программа типа такого:


USES CRT;
BEGIN
{буква P:}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Sound(900); Delay(200); NoSound; Delay(80); {тире}
Sound(900); Delay(200); NoSound; Delay(80); {тире}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Delay(300); {пауза}
{буква I:}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Delay(300); {пауза}
{буква P:}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Sound(900); Delay(200); NoSound; Delay(80); {тире}
Sound(900); Delay(200); NoSound; Delay(80); {тире}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Delay(300); {пауза}
{буква I:}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Delay(300); {пауза}
{буква N:}
Sound(900); Delay(200); NoSound; Delay(80); {тире}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Delay(300); {пауза}
{буква G:}
Sound(900); Delay(200); NoSound; Delay(80); {тире}
Sound(900); Delay(200); NoSound; Delay(80); {тире}
Sound(900); Delay(100); NoSound; Delay(80); {точка}
Delay(300); {пауза}
END.

dr.Jekill
01.04.2009, 14:37
Поконкретней можно?
sound(Hz) - задает частоту генерируемого динамиком сигнала в герцах. Звуковой сигнал звучит до тех пор, пока не будет выключен с помощью процедуры
nosound (если вы забыли написать вызов этой процедуры в программе, то звук не выключится, даже если программа уже закончила работу);
delay(msec) - выполняет задержку в миллисекундах;
Схема такая: воспроизвели звук через динмик, задержали, выключили.
Вот Вам еще пример:


uses crt;
const octava_l:array[1..7] of integer=(262,294,330,349,392,440,493);
var n,octava,koef: integer;
begin
koef:=1;
for octava:=1 to 3 do
begin
for n:=1 to 7 do
begin
sound(octava_l[n]*koef);
delay(300);
nosound;
end;
koef:=koef*2;
end;
sound(octava_l[1]*koef);
delay(300);
nosound;
end.

SLICK
01.04.2009, 18:51
спасибо!
но мне бы песню с помощью етого Sound:rolleyes:

atavin-ta
08.04.2009, 11:25
В паскале нет возможности проигровать сторониие звуки, если только через внутренний динамик. А так можно запустить любую прогу (напрмер Winamp).
Delphi то же паскаль, но там можно. Кидаешь на форму MediaPlayer, ставишь свойство FileName, потом играешь методом Play. Но если имеется в виду трупо паскаль, то может и нельзя, я по нему не спец.

BBB
09.04.2009, 09:21
В принципе, у меня была (может, и сейчас где-то "в закромах" валяется) Pascal-программа, которая играет "Ломбаду" (понятное дело, безо всяких звуковых плат).
Но у меня сильное подозрение, что Винды как-то блокируют работу ф-ии Sound.

SLICK
09.04.2009, 17:52
оо, пожалусто выложи ее

BBB
10.04.2009, 09:14
оо, пожалусто выложи ее Прошу прощения, это не так просто оказалось. Похоже, если она у меня и осталась, то где-то очень глубоко "закопана". Боюсь даже, что на 5'25"-дискетах...

SLICK
10.04.2009, 14:19
ясно.. жаль...

Esgal
05.05.2009, 11:32
procedure BeepInSpeaker(Freq: Word; Duration: Integer);
var
Ver: TOsVersionInfo;
begin
Ver.dwOSVersionInfoSize := SizeOf(Ver);
GetVersionEx(Ver);
if Ver.dwPlatformId = VER_PLATFORM_WIN32_NT then
Windows.Beep(Freq, Duration)
else
begin
asm
movzx ecx, Freq
mov eax, 1193180
sub edx, edx
div ecx
mov ecx, eax
mov al,0b6H
out 43H,al
mov al,cl
out 42h,al
mov al,ch
out 42h,al
in al,61H
or al,03H
out 61H,al
end;
sleep(Duration);
asm
in al,61H
and al,0fcH
out 61H,al
end;
end;
end;


Делфи процедура, должна пищать на всех динамиках, если он физически не отключен...



procedura tire();
begin
BeepInSpeaker(2000,600)
end;

procedure tchk();
begin
BeepInSpeaker(2000,100)
end;