• R/O
  • HTTP
  • SSH
  • HTTPS

sample-DELPHI: Commit

開発終了しました
クロスフェードをかける方法がよく用いられているように感じました、pyaudioでも簡単にできそうです。実際にPythonで書かれたコードもウェブで見つかりました。
自分のやってることにあんまり価値がなかったのでほどほどでほかのことに映ります。


Commit MetaInfo

Revision148c074d19003611b9cb64e39e3fff2ae99f2b61 (tree)
Time2018-08-10 23:38:20
Authoryamat0jp <yamat0jp@yaho...>
Commiteryamat0jp

Log Message

wavソフトがコマンドラインからGUIアプリに変化しました。

Change Summary

Incremental Difference

--- a/Unit1.fmx
+++ b/Unit1.fmx
@@ -18,6 +18,11 @@ object Form1: TForm1
1818 Size.PlatformDefault = False
1919 Text = 'test play'
2020 TabOrder = 20
21+ object Label3: TLabel
22+ Position.X = 16.000000000000000000
23+ Position.Y = 32.000000000000000000
24+ Text = 'target file'
25+ end
2126 end
2227 object GroupBox2: TGroupBox
2328 Position.X = 24.000000000000000000
@@ -60,7 +65,7 @@ object Form1: TForm1
6065 Size.Height = 19.000000000000000000
6166 Size.PlatformDefault = False
6267 TabOrder = 7
63- Value = 0.800000011920928900
68+ Value = 0.800000011920929000
6469 OnChange = TrackBar1Change
6570 end
6671 object Label1: TLabel
@@ -134,4 +139,10 @@ object Form1: TForm1
134139 Left = 344
135140 Top = 320
136141 end
142+ object SaveDialog1: TSaveDialog
143+ DefaultExt = '.wav'
144+ Filter = '.wav'
145+ Left = 624
146+ Top = 200
147+ end
137148 end
--- a/Unit1.pas
+++ b/Unit1.pas
@@ -29,6 +29,8 @@ type
2929 GroupBox2: TGroupBox;
3030 Label2: TLabel;
3131 Timer1: TTimer;
32+ Label3: TLabel;
33+ SaveDialog1: TSaveDialog;
3234 procedure Button1Click(Sender: TObject);
3335 procedure Button2Click(Sender: TObject);
3436 procedure TrackBar1Change(Sender: TObject);
@@ -80,17 +82,18 @@ procedure TForm1.Button4Click(Sender: TObject);
8082 begin
8183 if FileExists(Edit1.Text) = true then
8284 fileName := Edit1.Text
85+ else if FileExists('temp.wav') = true then
86+ begin
87+ Edit1.Text := 'temp.wav';
88+ fileName := Edit1.Text;
89+ end
8390 else
84- if FileExists('temp.wav') = true then
85- begin
86- Edit1.Text := 'temp.wav';;
87- fileName := Edit1.Text;
88- end
89- else
90- begin
91- Edit1.Text:='';
92- Exit;
93- end;
91+ begin
92+ Edit1.Text := '';
93+ Exit;
94+ end;
95+ if MediaPlayer1.Media <> nil then
96+ MediaPlayer1.Clear;
9497 if wavHdrRead(PChar(fileName), sp) < 0 then
9598 Exit;
9699 if readWav(fileName, pMem) = false then
@@ -101,6 +104,11 @@ begin
101104 pMem.SaveToFile('effect.wav');
102105 MediaPlayer1.fileName := 'effect.wav';
103106 MediaPlayer1.Play;
107+ if SaveDialog1.Execute = true then
108+ begin
109+ Edit1.Text := SaveDialog1.fileName;
110+ pMem.SaveToFile(Edit1.Text);
111+ end;
104112 end;
105113 pMem.Free;
106114 Finalize(sp.pWav^);
@@ -113,13 +121,14 @@ begin
113121 Exit;
114122 mic.fileName := 'temp.wav';
115123 mic.StartCapture;
124+ Edit1.Text:=mic.FileName;
116125 end;
117126
118127 procedure TForm1.Button6Click(Sender: TObject);
119128 begin
120129 if MediaPlayer1.State = TMediaState.Playing then
121130 MediaPlayer1.Stop
122- else
131+ else if mic.State = TCaptureDeviceState.Capturing then
123132 begin
124133 mic.StopCapture;
125134 MediaPlayer1.fileName := 'temp.wav';
@@ -139,10 +148,11 @@ end;
139148
140149 procedure TForm1.Timer1Timer(Sender: TObject);
141150 begin
142- if (MediaPlayer1.State = TMediaState.Playing)and(MediaPlayer1.Duration = MediaPlayer1.CurrentTime) then
151+ if (MediaPlayer1.State = TMediaState.Playing) and
152+ (MediaPlayer1.Duration = MediaPlayer1.CurrentTime) then
143153 begin
144154 MediaPlayer1.Stop;
145- MediaPlayer1.CurrentTime:=0;
155+ MediaPlayer1.CurrentTime := 0;
146156 end;
147157 end;
148158
--- a/voice.dproj
+++ b/voice.dproj
@@ -5,8 +5,8 @@
55 <FrameworkType>FMX</FrameworkType>
66 <MainSource>voice.dpr</MainSource>
77 <Base>True</Base>
8- <Config Condition="'$(Config)'==''">Debug</Config>
9- <Platform Condition="'$(Platform)'==''">Win32</Platform>
8+ <Config Condition="'$(Config)'==''">Release</Config>
9+ <Platform Condition="'$(Platform)'==''">Win64</Platform>
1010 <TargetedPlatforms>95</TargetedPlatforms>
1111 <AppType>Application</AppType>
1212 </PropertyGroup>
Show on old repository browser