-
Мне нужно повторять звук при нажатии кнопки и при выборе опредленной radiobutton. Заранее благодарен.
-
Т.е. я выбрал нужную радиокнопку и один раз нажимаю на кнопку 'повторить' и звук должен повторяться, пока я не нажму 'стоп'
-
Т.е. я выбрал нужную радиокнопку и один раз нажимаю на кнопку 'повторить' и звук должен повторяться, пока я не нажму 'стоп'
-
> Как сделать повтор звука в компоненте MediaPlayer?
Никак.
-
А если не в компоненте?
-
-
> Хотя не совсем понятно про "повторять звук при нажатии кнопки"
2 режима воспроизведения ему надо. Непрерывный и одноразовый. И чтобы их можно было менять по ходу пьесы.
-
> Мне нужно повторять звук при нажатии кнопки и при выборе опредленной radiobutton > [6] Дуб © (04.02.09 09:42)
Тогда ему необходимо в код примера по ссылке вставить первой примерно такую строку: if (НЕ нажата кнопка) and ((выбран НЕ определенный radiobutton) or (НЕ выбран определенный radiobutton)) then Exit; )
-
Я делаю проектную работу и мне надо сделать что-то вроде тюнера для гитары. Т.е. имеются звучания шести струн и я выбираю с помощью радиобаттона (всего их 6, как и струн на гитаре) нужную струну и слышится звук. Мне нужна функция повтора или что-то вроде этого. т.е. при выделении нужной струны (радиобаттона) этот звук слышился не один раз и повторялся до тех пор, пока я не отключу этот повтор. Я пробовал использовать repeat until, но толку мало было, звук вообще щипеть начинал.
-
> salamander © (04.02.09 11:51) [8]
Тебе поможет св-во Notify и событие OnNotify.
Только какой же это тюнер ? Это просто позорная бухтелка получится)
Тюнер должен иметь обратную связь - слушать звучание настраиваемого инструмента и подсказывать настройщику куда ему крутить вирбели..
-
> Тюнер должен иметь обратную связь - слушать звучание настраиваемого > инструмента и подсказывать настройщику куда ему крутить > вирбели..
Солгасен)) Это просто прога для настройки гитары. Создаю процедуру, которая должна бесперерывно повторять звук procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
with MediaPlayer1 do
if NotifyValue = nvSuccessful then
begin
Notify := True;
Play;
end;
end; Далее мне нужно, чтобы она выполнялась после нажатия кнопки. Я конечно всего год программирую на Делфи, но мне немного стыдно за себя. Почему при компиляции выдается ошибка, что якобы недостаточно параметров: Смотрите: procedure TForm1.BitBtn1Click(Sender: TObject);
begin
MediaPlayer1Notify();
end; Возможно я не так делаю вовсе. Но разве не так вызываются процедуры?) Если я не прав, наверное можно забирать документы из инста)) И насчёт свойства Notify. Честно говоря без понятия как сделать( Я что-то пробовал, делал событие OnNotify в MediaPlayer, привязывал к кнопке и по нажатию кнопки ничего не происходило.
-
> разве не так вызываются процедуры?
Во-первых, это не просто регулярная процедура, а процедурный метод объекта. Во-вторых, если в объявлении процедуры или метода присутствуют неумалчиваемые формальные параметры, то и при их вызове должны быть указаны фактические параметры соответствующего типа. Нарушение этого соглашения при компиляции как раз и приводит к той ошибке, которую ты лицезреешь. procedure TForm1.MediaPlayer1Notify(Sender: TObject); // жирным выделен формальный параметр procedure TForm1.BitBtn1Click(Sender: TObject);
begin
MediaPlayer1Notify(???); end;
В дан случае фактическим параметром можно указать nil > наверное можно забирать документы из инста
Смотря из какого) Если из арбузолитейного или заборостроительного, где Паскаль не преподают и не требуют его знания вообще, можно и не забирать. В противном случае следовало бы над этим серьезно призадуматься)
-
Мда, совсем я уже(( Нет, инст нормальный, но специальность не особо затрагивает область программирования. Хотя ошибка грубая.... Впредь буду осторожен)
-
> инст нормальный
Наверно он готовит магистров гитаронастроечных наук ? Так ты ж его закончил уже, судя по анкете ?)
-
Все исправил, но при нажатии кнопки повторнить-повторяет только 4 раза(( Вот весь код программы. unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, MMSystem, MPlayer, Buttons, ExtDlgs, jpeg,
Menus, ComCtrls;
type
TForm1 = class(TForm)
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
MediaPlayer1: TMediaPlayer;
RadioGroup2: TRadioGroup;
RadioButton7: TRadioButton;
RadioButton8: TRadioButton;
RadioButton9: TRadioButton;
RadioButton10: TRadioButton;
RadioButton11: TRadioButton;
RadioButton12: TRadioButton;
BitBtn1: TBitBtn;
Image1: TImage;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
StatusBar1: TStatusBar;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton8Click(Sender: TObject);
procedure RadioButton9Click(Sender: TObject);
procedure RadioButton10Click(Sender: TObject);
procedure RadioButton11Click(Sender: TObject);
procedure RadioButton12Click(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Ìåòàëëè÷& #229;ñêèå\1_E5.mid';
Open;
EndPos := TrackLength[1] div 4;
Play;
end;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Ìåòàëëè÷& #229;ñêèå\2_H4.mid';
Open;
EndPos := TrackLength[1] div 4;
Play;
end;
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Ìåòàëëè÷& #229;ñêèå\3_G4.mid';
Open;
EndPos := TrackLength[1] div 4;
Play;
end;
end;
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Ìåòàëëè÷& #229;ñêèå\4_D4.mid';
Open;
EndPos := TrackLength[1] div 4;
Play;
end;
end;
procedure TForm1.RadioButton5Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Ìåòàëëè÷& #229;ñêèå\5_A3.mid';
Open;
EndPos := TrackLength[1] div 4;
Play;
end;
end;
procedure TForm1.RadioButton6Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Ìåòàëëè÷& #229;ñêèå\6_E3.mid';
Open;
EndPos := TrackLength[1] div 4;
Play;
end;
end;
-
procedure TForm1.RadioButton7Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Íåéëîíîâ& #251;å\1E5.mp3';
Open;
EndPos := TrackLength[1] div 2;
Play;
end;
end;
procedure TForm1.RadioButton8Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Íåéëîíîâ& #251;å\2H4.mp3';
Open;
EndPos := TrackLength[1] div 2;
Play;
end;
end;
procedure TForm1.RadioButton9Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Íåéëîíîâ& #251;å\3G4.mp3';
Open;
EndPos := TrackLength[1] div 2;
Play;
end;
end;
procedure TForm1.RadioButton10Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Íåéëîíîâ& #251;å\4D4.mp3';
Open;
EndPos := TrackLength[1] div 2;
Play;
end;
end;
procedure TForm1.RadioButton11Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Íåéëîíîâ& #251;å\5A3.mp3';
Open;
EndPos := TrackLength[1] div 2;
Play;
end;
end;
procedure TForm1.RadioButton12Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'D:\Ïðîãðàììû äëÿ ñîôòà è ò.ä\Ïðîãðàììèðî âàíèå\Delphi 7\Projects\Çâó÷àíèÿ ñòðóí\Çâó÷àíèÿ ñòðóí\Íåéëîíîâ& #251;å\6E3.mp3';
Open;
EndPos := TrackLength[1] div 2;
Play;
end;
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
with MediaPlayer1 do
if NotifyValue = nvSuccessful then
begin
Notify := True;
Play;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
MediaPlayer1Notify(nil);
end;
end.
-
> Наверно он готовит магистров гитаронастроечных наук ?Так > ты ж его закончил уже, судя по анкете ?)
Нет, только на 2 курсе)
-
> Наверно он готовит магистров гитаронастроечных наук ?Так > ты ж его закончил уже, судя по анкете ?)
Нет, только на 2 курсе)
-
> только на 2 курсе
Что ж тогда людям голову морочишь ?)
> звучания шести струн и я выбираю с помощью радиобаттона > (всего их 6, как и струн на гитаре)
> RadioButton12Click
Судя по приведенному коду, у тебя аж 12 струн)
А что это за таинственные манипуляции с EndPos ? И зачем повторять практически один и тот же код аж 12 раз ?
-
Если отказаться от mid и mp3 в пользу wav, то гораздо проще и удобней для означенной цели использовать функцию PlaySound().
-
> Что ж тогда людям голову морочишь ?) НЕ охота было заполнять анкету) > > звучания шести струн и я выбираю с помощью радиобаттона > > (всего их 6, как и струн на гитаре)
Да, у меня 12 струн. 6 звуков нейлоновых и 6 металлических. Насчет EndPos. Стандартный midi и mp3 издает 4 звука одной струны, а с помощью EndPos := TrackLength[1] div * midi и mp3 издают лишь один звук. Иначе говоря трэк обрезается на половину или на четверть. Вот. Я знаю насчет waw, но он для настройки будет не очень хорошо, ибо нота не плохо слышится.
-
Точнее наоборот плохо слышится.
-
> Стандартный midi и mp3 издает 4 звука одной струны
Они у тебя откуда взялись, эти midi и mp3 ?
> плохо слышится
Как запишешь, так и будет слышаться.
-
Скачал с инета) Возможности записать нету.
-
> Скачал с инета
Ну так и скачай оттуда же готовую программу)
И не позорься уже: то что ты назвал "вроде тюнера", на самом деле называется камертоном.
Так что, если твоя т.н. "проектная работа" связана именно с тюнингом, то ты вообще копаешь не в ту сторону)
-
Я говорил уже, что ошибься в названии. И зачем мне готовую качать, если мне надо САМОМУ сделать?
-
> мне надо САМОМУ сделать
А то что для камертона нужно обязательно использовать семплированный звук, это ты тоже САМ придумал ?)
-
> 6_E3.mid';
для справки, midi не может быть эталоном звука, тк использует базу сэмплов) те на разных звуковухах будет звуать не одинаково) рекомендую всеж найти wave записи...
|