Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2009, 00:55   #1
BTCY
 
Аватар для BTCY
 
Регистрация: 27.01.2009
Сообщений: 8
Радость Подскажите, как присвоить к каждой кнопке определённый звук?

Здравствуйте.
Можно ли, присвоить к одной кнопке один звук?
Что бы при нажатии на кнопку проигрывался один звуковой фаил. При нажатии на другую кнопку другой ну и тд.
Если можно-то как? Объясните пожалуйста.
Единственная вещь которая хуже чем быть одному - это быть никем.
BTCY вне форума Ответить с цитированием
Старый 27.01.2009, 01:05   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... можно через стандартный компонент TMediaPlayer по нажатию на каждую кнопку проигрывать разные файлы... приблизительно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
MediaPlayer1.FileName:='C:\MySound.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 27.01.2009, 01:14   #3
BTCY
 
Аватар для BTCY
 
Регистрация: 27.01.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от goblinyara Посмотреть сообщение
хмм... можно через стандартный компонент TMediaPlayer по нажатию на каждую кнопку проигрывать разные файлы... приблизительно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
MediaPlayer1.FileName:='C:\MySound.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
Спасибо, приму к сведению, только есть недостаток, большая задержка от момента нажатия до момента начала проигрывания звука =(. И ещё, перекрывается звук при нажатии другого звука, а хотелось бы что бы этого не было.
И ещё в догонку вопрос, как присвоить эти кнопки к кнопкам на клавиатуре ( а конкретнее к цифрам на клаве которые расположены с права)
Единственная вещь которая хуже чем быть одному - это быть никем.

Последний раз редактировалось BTCY; 27.01.2009 в 01:29.
BTCY вне форума Ответить с цитированием
Старый 27.01.2009, 01:50   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Чтобы не заморачиваться, скачайте себе наборчик АБФ. Тогда все будет очень просто и не "начетисто":
Код:
if snd then
try
abfWav1.FileName:='Sounds/'+fnam;
abfWav1.Play;
except
;
end;
И самое главное - без использования "тормознутого" мелкого плеера...
mihali4 вне форума Ответить с цитированием
Старый 27.01.2009, 02:29   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Доброе время суток!!!
Делал так

Код:
uses
Menus;

procedure TForm1.Button1Click(Sender: TObject);
 begin
inherited;
sndPlaySound(pchar('C:\MySound1.mp3'), SND_ASYNC)
end;


procedure TForm1.Button2Click(Sender: TObject);
 begin
inherited;
sndPlaySound(pchar('C:\MySound2.mp3'), SND_ASYNC)
end;
А можно так!
В этом случае каждый раз при нажатии на кнопку будит меняца зук!!<Или покрайне мере должен!!!)))>

Код:
uses
Menus;

procedure TAutostart.JvTransparentButton22MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Var
nums: array [0..10] of Integer;
d, j, r: Integer;
begin
 Randomize;
 for d := 0 to 10 do
   nums[d] := d;
 for d := 0 to 10 do begin
   r := Random(11-d);
   Label5.Caption:=('Sound\KeiMusic\Music('+inttostr(nums[r])+').wav');
   for j := r to 11-d-2 do
     nums[j] := nums[j+1];
  begin
inherited;
sndPlaySound(pchar(Label5.Caption), SND_ASYNC)
end;
end;
end;
С уважением ,
Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Volkogriz; 27.01.2009 в 02:32.
Volkogriz вне форума Ответить с цитированием
Старый 27.01.2009, 11:17   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Цитата:
sndPlaySound(pchar('C:\MySound2.mp3 '), SND_ASYNC)
PlaySound только wav может проиграть, а не mp3.
Arigato вне форума Ответить с цитированием
Старый 27.01.2009, 11:21   #7
BTCY
 
Аватар для BTCY
 
Регистрация: 27.01.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Volkogriz Посмотреть сообщение
Доброе время суток!!!
Делал так

Код:
uses
Menus;

procedure TForm1.Button1Click(Sender: TObject);
 begin
inherited;
sndPlaySound(pchar('C:\MySound1.mp3'), SND_ASYNC)
end;


procedure TForm1.Button2Click(Sender: TObject);
 begin
inherited;
sndPlaySound(pchar('C:\MySound2.mp3'), SND_ASYNC)
end;
Спасибо, очень хороший совет, только почему-то не играет у меня mp3 файлы, а wav проигрывает спокойно.
Цитата:
Сообщение от Arigato Посмотреть сообщение
PlaySound только wav может проиграть, а не mp3.
вот, точно, а можно совет что-бы проигрывала музыка без использования MediaPlayer, но чтобы воспроизводило mp3?
Единственная вещь которая хуже чем быть одному - это быть никем.

Последний раз редактировалось BTCY; 27.01.2009 в 11:23.
BTCY вне форума Ответить с цитированием
Старый 27.01.2009, 11:44   #8
Котовский
Пользователь
 
Аватар для Котовский
 
Регистрация: 24.12.2008
Сообщений: 19
По умолчанию

Можна подключить Bass.dll и праигрывать ейными функциями, по крайней мере не тармазит, как TMediaPlayer, послушная и неприхотливая, главнае, правильно функции прописать.
Пока жирафы думают, кролики делают!
Котовский вне форума Ответить с цитированием
Старый 27.01.2009, 12:36   #9
BTCY
 
Аватар для BTCY
 
Регистрация: 27.01.2009
Сообщений: 8
По умолчанию

И ещё в догонку вопрос, как присвоить эти кнопки к кнопкам на клавиатуре ( а конкретнее к цифрам на клаве которые расположены с права)
Единственная вещь которая хуже чем быть одному - это быть никем.
BTCY вне форума Ответить с цитированием
Старый 27.01.2009, 12:44   #10
Котовский
Пользователь
 
Аватар для Котовский
 
Регистрация: 24.12.2008
Сообщений: 19
По умолчанию

я бы ипользовал событие TForm1.formKeyDown, где проверял, если нужная кнопка нажата, то соответственная процедура вызывается:
form1.button1.Click(sender);
Пока жирафы думают, кролики делают!
Котовский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, выдвинут, или задвинут, определённый дисковод? Altera Win Api 5 10.03.2009 08:47
Как обрабатывать нажатие на кнопке? AidarBik Win Api 13 05.02.2008 19:58
Как узнать,нужен ли мне определённый процесс Alximik Софт 5 21.11.2007 13:50
Как обработать событи, щелчок на кнопке мыши? proglamer Паскаль, Turbo Pascal, PascalABC.NET 10 13.11.2007 18:57
Как присвоить апостраф? Apollo_13 Общие вопросы Delphi 3 08.08.2007 14:37