Como gravar arquivos wave (*.wav)?
Esta dica mostra como podemos gravar sons com o Delphi.
O Sons gravados são do formato wave.
Crie uma nova aplicação e adicione três botões.
Após isso declare mmSystem na seção uses,
em versões unicode declare Winapi.MMSystem.
E deixe os eventos OnClick dos botões conforme o exemplo abaixo:
Iniciando a gravação.
1
2
3
4
5
6
7
8
9
10
11
| procedure TForm1.Button1Click(Sender: TObject); // Gravar, Record
begin
mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mysound', nil, 0, Handle);
mciSendString('SET mysound TIME FORMAT MS ' + // set time
'BITSPERSAMPLE 8 ' + // 8 Bit
'CHANNELS 1 ' + // MONO
'SAMPLESPERSEC 8000 ' + // 8 KHz
'BYTESPERSEC 8000', // 8000 Bytes/s
nil, 0, Handle);
mciSendString('RECORD mysound', nil, 0, Handle);
end; |
procedure TForm1.Button1Click(Sender: TObject); // Gravar, Record
begin
mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mysound', nil, 0, Handle);
mciSendString('SET mysound TIME FORMAT MS ' + // set time
'BITSPERSAMPLE 8 ' + // 8 Bit
'CHANNELS 1 ' + // MONO
'SAMPLESPERSEC 8000 ' + // 8 KHz
'BYTESPERSEC 8000', // 8000 Bytes/s
nil, 0, Handle);
mciSendString('RECORD mysound', nil, 0, Handle);
end;
Parando a gravação.
1
2
3
4
| procedure TForm1.Button2Click(Sender: TObject); // Parar, Stop
begin
mciSendString('STOP mysound', nil, 0, Handle);
end; |
procedure TForm1.Button2Click(Sender: TObject); // Parar, Stop
begin
mciSendString('STOP mysound', nil, 0, Handle);
end;
Salvando o áudio, neste caso o arquivo é salvo junto com o executável.
1
2
3
4
5
6
7
8
| procedure TForm1.Button3Click(Sender: TObject); // Salvar, Save
var
verz: String;
begin
GetDir(0, verz);
mciSendString(PChar('SAVE mysound ' + verz + '/test.wav'), nil, 0, Handle);
mciSendString('CLOSE mysound', nil, 0, Handle);
end; |
procedure TForm1.Button3Click(Sender: TObject); // Salvar, Save
var
verz: String;
begin
GetDir(0, verz);
mciSendString(PChar('SAVE mysound ' + verz + '/test.wav'), nil, 0, Handle);
mciSendString('CLOSE mysound', nil, 0, Handle);
end;
A função foi testada no Windows 8.1 e funcionou muito bem.
Dúvidas ou sugestões deixe nos comentários do post.
-
InfusTec
-
3.446 views
- 0 comentários
- 18 de abril de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo