Adicionar recursos de áudio a uma aplicação Delphi pode ser útil em diversos tipos de projetos, como sistemas de atendimento, prontuários, aplicativos educacionais, gravação de observações, assistentes virtuais e soluções que utilizam reconhecimento de voz ou Inteligência Artificial.
Neste artigo, vamos conhecer a DelphiAudio, uma biblioteca leve que permite gravar áudios diretamente no formato MP3 e reproduzir arquivos de áudio em aplicações Delphi de forma simples e rápida. E sem a necessidade de instalar componentes visuais.

Conhecendo a DelphiAudio
A DelphiAudio é uma biblioteca de código Delphi gratuita criada para facilitar a implementação de recursos de gravação e reprodução de áudio.
Com ela, podemos:
- Gravar áudio diretamente em um arquivo MP3;
- Gravar o áudio em uma stream;
- Reproduzir arquivos MP3;
- Iniciar e interromper uma gravação;
- Adicionar recursos de áudio sem a necessidade de instalar componentes visuais no Delphi.
A biblioteca possui uma estrutura leve e pode ser utilizada em aplicações VCL para Windows, tanto em projetos Win32 quanto Win64. Para cada plataforma, devem ser utilizadas as DLLs correspondentes disponibilizadas no repositório oficial.
Como utilizar a DelphiAudio
O processo básico de uso consiste em adicionar a unit AudioRecorder.pas ao projeto e copiar as DLLs necessárias para a pasta do executável.
O primeiro passo é acessar o repositório baixar os arquivos e adicionar a unit AudioRecorder.pas ao projeto Delphi.
Essa unit contém as classes e rotinas responsáveis pela captura, codificação e reprodução do áudio.
Adicionando a biblioteca ao projeto
Depois de baixar ou clonar o repositório, adicione o arquivo AudioRecorder.pas ao seu projeto. No Delphi, isso pode ser feito pelo menu: Project > Add to Project
Outra opção é adicionar a pasta da biblioteca ao Library Path ou ao Search Path do projeto.
DLLs necessárias
Além da unit Delphi, a biblioteca utiliza DLLs de suporte para realizar a codificação do áudio no formato MP3.
As DLLs utilizadas são:
lame_enc.dll
libmp3lame.dllEsses arquivos devem ser copiados para a mesma pasta do executável da aplicação.
É importante utilizar as versões corretas das DLLs de acordo com a plataforma selecionada no Delphi, as DLLs estão disponíveis no repositório:

Gravando diretamente em MP3
Uma das principais vantagens da DelphiAudio é permitir que o áudio capturado pelo microfone seja salvo diretamente no formato MP3.
No projeto, utilizamos a classe TAudioRecorder, disponível na unit AudioRecorder.pas
Primeiro, adicionamos a unit ao uses:
uses
AudioRecorder;Depois, declaramos uma variável privada:
private
FAudioRecorder: TAudioRecorder;Criamos a instância no evento OnCreate do formulário:
procedure TMainView.FormCreate(Sender: TObject);
begin
FAudioRecorder := TAudioRecorder.Create;
end;E liberamos o objeto no OnDestroy:
procedure TMainView.FormDestroy(Sender: TObject);
begin
FAudioRecorder.Free;
end;Listando os dispositivos de gravação
Para listar os microfones disponíveis no computador, utilizamos o método GetDevices:
cBoxDevice.Items.Assign(FAudioRecorder.GetDevices);Os dispositivos encontrados são adicionados a um TComboBox chamado cBoxDevice, permitindo selecionar qual será utilizado na gravação.
Iniciando a gravação
Antes de iniciar uma nova gravação, limpamos os dados anteriores com ClearRecordedData.
Em seguida, chamamos StartRecording, informando o índice do microfone selecionado (caso não seja informado será utilizado o microfone padrão do Windows):
procedure TMainView.btnStartRecordingClick(Sender: TObject);
begin
FAudioRecorder.ClearRecordedData;
FAudioRecorder.StartRecording(cBoxDevice.ItemIndex);
end;Interrompendo a gravação
Para finalizar a gravação, utilizamos o método StopRecording:
procedure TMainView.btnStopRecordingClick(Sender: TObject);
begin
Sleep(500);
FAudioRecorder.StopRecording;
end;Após isso, o áudio permanece disponível para ser reproduzido ou salvo em MP3.
Reproduzindo o áudio gravado
A gravação pode ser reproduzida diretamente da memória, sem a necessidade de salvar um arquivo.
Para isso, obtemos uma TMemoryStream com o método GetMP3Stream:
procedure TMainView.btnPlayRecordingClick(Sender: TObject);
var
LAudioStream: TMemoryStream;
begin
LAudioStream := FAudioRecorder.GetMP3Stream(20500);
try
LAudioStream.Position := 0;
FAudioRecorder.PlayMP3FromStream(LAudioStream);
finally
LAudioStream.Free;
end;
end;Esse recurso também permite utilizar o áudio em integrações com APIs, bancos de dados ou serviços de transcrição.
Salvando a gravação em MP3
Para salvar o áudio gravado, utilizamos o método SaveToMP3:
FAudioRecorder.SaveToMP3(ExtractFilePath(Application.ExeName) + 'gravacao.mp3);Reproduzindo um arquivo MP3
Além de reproduzir a gravação atual, também podemos abrir qualquer arquivo MP3:
procedure TMainView.btnPlayAudioMP3Click(Sender: TObject);
begin
if not OpenDialog1.Execute then
Exit;
FAudioRecorder.PlayMP3FromFile(OpenDialog1.FileName);
end;
O arquivo selecionado no TOpenDialog é enviado ao método PlayMP3FromFile.
Utilizando o áudio em uma stream
A possibilidade de obter o áudio em uma TMemoryStream facilita diversas integrações.
Podemos utilizar essa stream para:
- Armazenar o áudio em um campo BLOB;
- Enviar o arquivo para uma API REST;
- Realizar upload para um servidor;
- Integrar com serviços de transcrição;
- Processar o áudio com Inteligência Artificial.
Para obter a stream:
var
LAudioStream: TMemoryStream;
begin
LAudioStream := FAudioRecorder.GetMP3Stream(20500);
try
LAudioStream.Position := 0;
// Utilize a stream conforme a necessidade da aplicação.
finally
LAudioStream.Free;
end;
end;
Projeto completo de demonstração
O projeto completo está disponível no GitHub da Code4Delphi: https://github.com/Code4Delphi/DelphiAudio
Nele, você encontrará um exemplo funcional para listar dispositivos, gravar, reproduzir e salvar arquivos MP3.
Vídeo completo no canal da Code4Delphi
Também publicamos um vídeo mostrando todo o processo na prática:
Repositório oficial da biblioteca
A biblioteca DelphiAudio está disponível gratuitamente no GitHub da TMS Software: https://github.com/tmssoftware/DelphiAudio
Conclusão
A DelphiAudio permite adicionar gravação e reprodução de áudio a aplicações Delphi com pouco código.
Com ela, podemos listar dispositivos, gravar diretamente em MP3, reproduzir o áudio da memória, salvar arquivos e trabalhar com streams para integrações com bancos de dados, APIs e Inteligência Artificial.

