Captuer le son sortant et l'enregistrer dans un fichier wav

Description

Tous sons émits sera enregistré dans un fichier wav
(en fonction de se qui est selectionné dans l"Controle du volume" :)

Il faut une fonction permettant de créé l'en-tête d'un fichier wav
et un TMediaPlayer pour enregistrer

Source / Exemple :


//Voici la fonction:
procedure CreateWav(channels : word; resolution : word; rate : longint; fn : string);
type
TWavHeader = record
rId : longint;
rLen : longint;
wId : longint;
fId : longint;
fLen : longint;
wFormatTag : word;
nChannels : word;
nSamplesPerSec : longint;
nAvgBytesPerSec : longint;
nBlockAlign : word;
wBitsPerSample : word;
dId : longint;
wSampleLength : longint;
end;
var
wf : file of TWavHeader;
wh : TWavHeader;
begin
wh.rId := $46464952;
wh.rLen := 36;
wh.wId := $45564157;
wh.fId := $20746d66;
wh.fLen := 16;
wh.wFormatTag := 1;
wh.nChannels := channels;
wh.nSamplesPerSec := rate;
wh.nAvgBytesPerSec := channels*rate*(resolution div 8);
wh.nBlockAlign := channels*(resolution div 8);
wh.wBitsPerSample := resolution;
wh.dId := $61746164;
wh.wSampleLength := 0;

assignfile(wf,fn);
rewrite(wf);
write(wf,wh);
closefile(wf);
end;

//Exemple d'utilisation:
CreateWav(2,16,44100,'C:\Test.wav');

//Pour demarrer l'enregistrement:
MediaPlayer1.DeviceType := dtAutoSelect;
MediaPlayer1.FileName := 'C:\Test.wav';
MediaPlayer1.Open;
MediaPlayer1.StartRecording;

//Pour arrêter
MediaPlayer1.Stop;
MediaPlayer1.Save;
MediaPlayer1.Close;

Conclusion :


Voir le zip pour un exemple

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.