Das folgende Beispiel zeigt, wie man das eingehende Audiosignal auf Windows aufnehmen kann. Dazu müssen natürlich die richtigen Audiotreiber installiert sein. Das Signal kann über den Eingang oder Stereo-Mix sowohl als auch über das Mikrofon erfasst werden.
Aufgenommen wird die Wave Datei in zwei Bitraten 8 oder 16 und in zwei Channels Stereo oder Mono.
Es wird benötigt : 3xButton; 1xEditBox, 2xRadioButton, 1xSaveDialog, 1xCheckBox
uses MMSystem
//
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled := False;
Button2.Enabled := True;
mciSendString('close all', nil, 0, 0);
mciSendString('open new type waveaudio alias capture', nil, 0, 0);
mciSendString('seek capture to start', nil, 0, 0);
// Very poor sound quality by default
If CheckBox1.Checked = True Then
mciSendString('set capture samplespersec 44100', nil, 0, 0);
//Sound quality very poor by default
If CheckBox1.Checked = False Then
mciSendString('set capture samplespersec 11100', nil, 0, 0);
// Number of bits (8 or 16)
mciSendString(PChar('set capture bitspersample ' + ComboBox1.Items[ComboBox1.ItemIndex]) , nil, 0, 0);
//Channel (1 = Momo, 2 = Stereo)
If RadioButton1.Checked = True Then
mciSendString('set capture channels 2', nil, 0, 0);
//Channel (1 = Momo, 2 = Stereo)
If RadioButton2.Checked = True Then
mciSendString('set capture channels 1', nil, 0, 0);
mciSendString('record capture', nil, 0, 0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
button1.Enabled := True;
button2.Enabled := False;
mciSendString(PChar('save capture "' + edit1.Text + '"'), nil, 0, 0);
mciSendString('stop capture', nil, 0, 0);
mciSendString('close capture', nil, 0, 0);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SaveDialog.Execute;
Edit1.Text := Copy(SaveDialog.Files.Text,1,length(SaveDialog.Files.Text)-2) + '.wav';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.ItemIndex := 0;
end;
Keine Kommentare:
Kommentar veröffentlichen