Форум: "Media";
Текущий архив: 2013.12.08;
Скачать: [xml.tar.bz2];
ВнизКак сделать повтор звука в компоненте MediaPlayer? Найти похожие ветки
← →
salamander © (2009-02-03 17:45) [0]Мне нужно повторять звук при нажатии кнопки и при выборе опредленной radiobutton.
Заранее благодарен.
← →
salamander © (2009-02-03 17:47) [1]Т.е. я выбрал нужную радиокнопку и один раз нажимаю на кнопку "повторить" и звук должен повторяться, пока я не нажму "стоп"
← →
salamander © (2009-02-03 17:47) [2]Т.е. я выбрал нужную радиокнопку и один раз нажимаю на кнопку "повторить" и звук должен повторяться, пока я не нажму "стоп"
← →
Сергей М. © (2009-02-03 19:29) [3]
> Как сделать повтор звука в компоненте MediaPlayer?
Никак.
← →
salamander © (2009-02-04 00:36) [4]А если не в компоненте?
← →
{RASkov} © (2009-02-04 09:37) [5]Посмотри на:
http://www.delphisources.ru/pages/faq/base/infinite_play_avi.html
Хотя не совсем понятно про "повторять звук при нажатии кнопки"
← →
Дуб © (2009-02-04 09:42) [6]
> Хотя не совсем понятно про "повторять звук при нажатии кнопки"
2 режима воспроизведения ему надо. Непрерывный и одноразовый. И чтобы их можно было менять по ходу пьесы.
← →
{RASkov} © (2009-02-04 10:01) [7]> Мне нужно повторять звук при нажатии кнопки и при выборе опредленной radiobutton
> [6] Дуб © (04.02.09 09:42)
Тогда ему необходимо в код примера по ссылке вставить первой примерно такую строку:if (НЕ нажата кнопка) and ((выбран НЕ определенный radiobutton) or (НЕ выбран определенный radiobutton)) then Exit;
)
← →
salamander © (2009-02-04 11:51) [8]Я делаю проектную работу и мне надо сделать что-то вроде тюнера для гитары. Т.е. имеются звучания шести струн и я выбираю с помощью радиобаттона (всего их 6, как и струн на гитаре) нужную струну и слышится звук. Мне нужна функция повтора или что-то вроде этого. т.е. при выделении нужной струны (радиобаттона) этот звук слышился не один раз и повторялся до тех пор, пока я не отключу этот повтор.
Я пробовал использовать repeat until, но толку мало было, звук вообще щипеть начинал.
← →
Сергей М. © (2009-02-04 12:54) [9]
> salamander © (04.02.09 11:51) [8]
Тебе поможет св-во Notify и событие OnNotify.
Только какой же это тюнер ? Это просто позорная бухтелка получится)
Тюнер должен иметь обратную связь - слушать звучание настраиваемого инструмента и подсказывать настройщику куда ему крутить вирбели..
← →
salamander © (2009-02-04 14:04) [10]
> Тюнер должен иметь обратную связь - слушать звучание настраиваемого
> инструмента и подсказывать настройщику куда ему крутить
> вирбели..
Солгасен)) Это просто прога для настройки гитары.
Создаю процедуру, которая должна бесперерывно повторять звук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, привязывал к кнопке и по нажатию кнопки ничего не происходило.
← →
Сергей М. © (2009-02-04 16:13) [11]
> разве не так вызываются процедуры?
Во-первых, это не просто регулярная процедура, а процедурный метод объекта.
Во-вторых, если в объявлении процедуры или метода присутствуют неумалчиваемые формальные параметры, то и при их вызове должны быть указаны фактические параметры соответствующего типа. Нарушение этого соглашения при компиляции как раз и приводит к той ошибке, которую ты лицезреешь.procedure TForm1.MediaPlayer1Notify(Sender: TObject);
// жирным выделен формальный параметрprocedure TForm1.BitBtn1Click(Sender: TObject);
begin
MediaPlayer1Notify(???); // а где же соответствующий ему фактический параметр ?
end;
В дан случае фактическим параметром можно указатьnil
> наверное можно забирать документы из инста
Смотря из какого)
Если из арбузолитейного или заборостроительного, где Паскаль не преподают и не требуют его знания вообще, можно и не забирать.
В противном случае следовало бы над этим серьезно призадуматься)
← →
salamander © (2009-02-04 16:23) [12]Мда, совсем я уже((
Нет, инст нормальный, но специальность не особо затрагивает область программирования. Хотя ошибка грубая.... Впредь буду осторожен)
← →
Сергей М. © (2009-02-04 16:29) [13]
> инст нормальный
Наверно он готовит магистров гитаронастроечных наук ?
Так ты ж его закончил уже, судя по анкете ?)
← →
salamander © (2009-02-04 16:37) [14]Все исправил, но при нажатии кнопки повторнить-повторяет только 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
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
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;
← →
salamander © (2009-02-04 16:37) [15]
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.
← →
salamander © (2009-02-04 16:38) [16]
> Наверно он готовит магистров гитаронастроечных наук ?Так
> ты ж его закончил уже, судя по анкете ?)
Нет, только на 2 курсе)
← →
salamander © (2009-02-04 16:38) [17]
> Наверно он готовит магистров гитаронастроечных наук ?Так
> ты ж его закончил уже, судя по анкете ?)
Нет, только на 2 курсе)
← →
Сергей М. © (2009-02-04 16:56) [18]
> только на 2 курсе
Что ж тогда людям голову морочишь ?)
> звучания шести струн и я выбираю с помощью радиобаттона
> (всего их 6, как и струн на гитаре)
> RadioButton12Click
Судя по приведенному коду, у тебя аж 12 струн)
А что это за таинственные манипуляции с EndPos ?
И зачем повторять практически один и тот же код аж 12 раз ?
← →
Сергей М. © (2009-02-04 17:06) [19]Если отказаться от mid и mp3 в пользу wav, то гораздо проще и удобней для означенной цели использовать функцию PlaySound().
← →
salamander © (2009-02-04 17:12) [20]> Что ж тогда людям голову морочишь ?)
НЕ охота было заполнять анкету)
> > звучания шести струн и я выбираю с помощью радиобаттона
> > (всего их 6, как и струн на гитаре)
Да, у меня 12 струн. 6 звуков нейлоновых и 6 металлических.
Насчет EndPos. Стандартный midi и mp3 издает 4 звука одной струны, а с помощьюEndPos := TrackLength[1] div *
midi и mp3 издают лишь один звук. Иначе говоря трэк обрезается на половину или на четверть. Вот.
Я знаю насчет waw, но он для настройки будет не очень хорошо, ибо нота не плохо слышится.
← →
salamander © (2009-02-04 17:13) [21]Точнее наоборот плохо слышится.
← →
Сергей М. © (2009-02-04 17:24) [22]
> Стандартный midi и mp3 издает 4 звука одной струны
Они у тебя откуда взялись, эти midi и mp3 ?
> плохо слышится
Как запишешь, так и будет слышаться.
← →
salamander © (2009-02-04 17:29) [23]Скачал с инета)
Возможности записать нету.
← →
Сергей М. © (2009-02-04 19:53) [24]
> Скачал с инета
Ну так и скачай оттуда же готовую программу)
И не позорься уже: то что ты назвал "вроде тюнера", на самом деле называется камертоном.
Так что, если твоя т.н. "проектная работа" связана именно с тюнингом, то ты вообще копаешь не в ту сторону)
← →
salamander © (2009-02-05 11:14) [25]Я говорил уже, что ошибься в названии. И зачем мне готовую качать, если мне надо САМОМУ сделать?
← →
Сергей М. © (2009-02-05 12:25) [26]
> мне надо САМОМУ сделать
А то что для камертона нужно обязательно использовать семплированный звук, это ты тоже САМ придумал ?)
← →
brother © (2009-02-05 12:30) [27]> 6_E3.mid";
для справки, midi не может быть эталоном звука, тк использует базу сэмплов) те на разных звуковухах будет звуать не одинаково)
рекомендую всеж найти wave записи...
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2013.12.08;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.003 c