OSDN Git Service

pyaudioを使って録音できるようになりました
[sample-delphi/sample-DELPHI.git] / Unit2.pas
1 unit Unit2;
2
3 interface
4
5 uses
6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
7   System.Classes, Vcl.Graphics,
8   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Buttons, Vcl.StdCtrls, Vcl.MPlayer,
9   effect, selectFile, spWav, wav, WriteHeader, PythonEngine,
10   PythonGUIInputOutput;
11
12 type
13   TForm2 = class(TForm)
14     MediaPlayer1: TMediaPlayer;
15     Edit1: TEdit;
16     SpeedButton1: TSpeedButton;
17     OpenDialog1: TOpenDialog;
18     SaveDialog1: TSaveDialog;
19     Button1: TButton;
20     ListBox1: TListBox;
21     PythonEngine1: TPythonEngine;
22     Memo1: TMemo;
23     Button2: TButton;
24     button3: TLabel;
25     Edit2: TEdit;
26     Label1: TLabel;
27     PythonInputOutput1: TPythonInputOutput;
28     procedure SpeedButton1Click(Sender: TObject);
29     procedure Button1Click(Sender: TObject);
30     procedure MediaPlayer1MouseEnter(Sender: TObject);
31     procedure Button2Click(Sender: TObject);
32     procedure PythonInputOutput1SendData(Sender: TObject;
33       const Data: AnsiString);
34   private
35     { Private \90é\8c¾ }
36   public
37     { Public \90é\8c¾ }
38     sp: SpParam;
39     pMem: TMemoryStream;
40     fileName: string;
41     tmep: string;
42   end;
43
44 var
45   Form2: TForm2;
46
47 implementation
48
49 {$R *.dfm}
50
51 procedure TForm2.Button1Click(Sender: TObject);
52 begin
53   if FileExists(Edit1.Text) = true then
54     fileName := Edit1.Text
55   else if FileExists('temp.wav') = true then
56   begin
57     Edit1.Text := 'temp.wav';
58     fileName := Edit1.Text;
59   end
60   else
61   begin
62     Edit1.Text := '';
63     Exit;
64   end;
65   MediaPlayer1.Close;
66   if wavHdrRead(PChar(fileName), sp) < 0 then
67     Exit;
68   if readWav(fileName, pMem) = false then
69     Exit;
70   sp.pWav := pMem.Memory;
71   if effectWav(sp) = 0 then
72   begin
73     pMem.SaveToFile('effect.wav');
74     if SaveDialog1.Execute = true then
75     begin
76       Edit1.Text := SaveDialog1.fileName;
77       pMem.SaveToFile(Edit1.Text);
78       MediaPlayer1.fileName := Edit1.Text;
79       MediaPlayer1.Open;
80       MediaPlayer1.Play;
81     end
82     else
83     begin
84       MediaPlayer1.fileName := Edit1.Text;
85       MediaPlayer1.Open;
86     end;
87   end;
88   pMem.Free;
89   Finalize(sp.pWav^);
90 end;
91
92 procedure TForm2.Button2Click(Sender: TObject);
93 begin
94   ListBox1.Items.Clear;
95   PythonEngine1.ExecStrings(Memo1.Lines);
96 end;
97
98 procedure TForm2.MediaPlayer1MouseEnter(Sender: TObject);
99 begin
100   if MediaPlayer1.fileName <> 'temp.wav' then
101   begin
102     if FileExists(Edit1.Text) = false then
103     begin
104       Edit1.Text := '';
105       MediaPlayer1.FileName:='';
106       MediaPlayer1.Open;
107     end
108     else
109     begin
110       if ExpandFileName(Edit1.Text) <> ExpandFileName(MediaPlayer1.fileName)
111       then
112         MediaPlayer1.fileName := Edit1.Text;
113       MediaPlayer1.Open;
114     end;
115   end;
116 end;
117
118 procedure TForm2.PythonInputOutput1SendData(Sender: TObject;
119   const Data: AnsiString);
120 begin
121   ListBox1.Items.Add(Data);
122 end;
123
124 procedure TForm2.SpeedButton1Click(Sender: TObject);
125 begin
126   if OpenDialog1.Execute = true then
127   begin
128     Edit1.Text := OpenDialog1.fileName;
129     wavHdrRead(PChar(Edit1.Text),sp);
130     MediaPlayer1MouseEnter(Sender);
131   end;
132 end;
133
134 end.