Salut,
J'aurais voulu savoir comment faire pour récupérer les propriétés d'un fichier wav (en particulier savoir si il est mono ou stéréo) avec juste son nom.
Merci d'avance
Salut,
J'aurais voulu savoir comment faire pour récupérer les propriétés d'un fichier wav (en particulier savoir si il est mono ou stéréo) avec juste son nom.
Merci d'avance
Salut,
J'ai trouvé ceci à cette adresse http://col2000.free.fr/vocal/formawav.htm
Par contre les couleurs sont très mauvaises. Désolé.
Voilà j'espère que cela t'aidera,
@+
Salut,
Voici un exemple de code te permettant de lire l'en-tête d'un fichier Wave.
[Edit]: Ajout déclaration varaiable FFile dans procédure.
Voilà ! @+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 type TWaveHeader = record File_Type: array[0..3] of char; // 1 à 4: Identification du format = 'RIFF' File_Size: DWORD; // 5 à 8: Taille du fichier - 8 (restant) File_ID: array[0..3] of char; // 9 à 12: 'WAVE' Chunk_ID: array[0..3] of char; // 13 à 16: Identification du chunk format = 'fmt' Chunk_Size: DWORD; // 17 à 20: Taille du chunk format Format: WORD; // 21 à 22: N° de format (0 = classique) Channels_nb: WORD; // 23 à 24: Nb de canaux (mono/stéréo) 1 ou 2 Sampling_Frequency: DWORD; // 25 à 28: Fréquence d'échantilonnage Byte_Per_Second: DWORD; // 29 à 32: Nb octets / seconde utilisés Byte_Per_Sample: WORD; // 33 à 34: Nb octets / échantillonnage utilisés Depth: WORD; // 35 à 36: Profondeur (Nb bits / échantillonnage) 8 ou 16 Chunk_Data_ID: array[0..3] of char; // 37 à 40: Identification chunk données = 'data' Chunk_Data_Size: DWORD; // 41 à 44: Taille du chunk données end; Implementation procedure TForm1.Button1Click(Sender: TObject); var FFile: File; NumRead: Integer; WaveHeader: TWaveHeader; begin if OpenDialog1.Execute then begin lblFilename.Caption := OpenDialog1.Filename; AssignFile(FFile, OpenDialog1.Filename); FileMode := 0; // Lecture seule Reset(FFile, 1); // Lecture de l'en-tête BlockRead(FFile, WaveHeader, SizeOf(WaveHeader), NumRead); with WaveHeader do begin lblFile_Type.Caption := File_Type; lblFile_Size.Caption := IntToStr(File_Size) + ' Octets'; lblFile_ID.Caption := File_ID; lblChunk_ID.Caption := Chunk_ID; lblChunk_Size.Caption := IntToStr(Chunk_Size) + ' Octets'; case Format of 0: lblFormat.Caption := 'Classique'; 1: lblFormat.Caption := 'PCM'; else lblFormat.Caption := 'Autre (' +IntToStr(Format) + ')'; // A compléter je manque d'infos end; if Channels_nb = 1 then lblChannel_nb.Caption := 'Mono' else lblChannel_nb.Caption := 'Stéréo'; lblSampling_Frequency.Caption := IntToStr(Sampling_Frequency) + ' Hz'; lblByte_Per_Second.Caption := IntToStr(Byte_Per_Second); lblByte_Per_Sample.Caption := IntToStr(Byte_Per_Sample); lblDepth.Caption := IntToStr(Depth); lblChunk_Data_ID.Caption := Chunk_Data_ID; lblChunk_Data_Size.Caption := IntToStr(Chunk_Data_Size) + ' Octets'; // Fermeture CloseFile(FFile); end; end end;
Merci pour le code, je vais jetter un oeil
Le code est impec, c'est ce qu'il me fallait, merci beaucoup.
Par contre j'ai encore une petite question:
Comment faire pour lire deux fichiers wave en même temps, et pouvoir enregistrer le résultat dans un seul fichier wave.
Merci d'avance
Re-Salut Carl,
Ce fut avec plaisir !Le code est impec, c'est ce qu'il me fallait, merci beaucoup.
Par contre pour répondre à ta dernière question, euh, j'avoue que je décrouve tout ceci en même temps que toi.
Donc laisse-moi un peu de temps, je vais me pencher sur le problème.
Pour être sûr de l'objectif, tu veux créer Wave3 qui sera égal à Wave1 + Wave2. C'est ça ?
@+ Claude
Salut,
Je cherchais chez l'ami Google des infos pour concatener des fichiers Waves, et voilà ce que j'ai trouvé: Un bel exemple sur ce site !
http://delphi.developpez.com/sources/?page=sec_sys_son
Tu as d'autres infos sur les waves: les en-tetes, les données, ...
@+
voir aussi
pour format des waves voir
http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
Merci pour le lien, mais je ne veux pas concatener des waves, mais les lire en même temps. mais merci quand même
Qu'entendez-vous pour lire
- Les écouter sour une sortie audio
- voir les data
- ...
?
Sorry, c'est vrai que ça peu preter à confusion, quand je met lire, je parle d'écouter les fichiers et de pouvoir enregister le résultat dans un autres fichier wave.
Salut!
Je pense que la solution a déjà été donné plus haut...
j'ai réalisé ce petit tuto sur le format WAV, alors je vous en fait profiter :
http://sub0.developpez.com/FormatWAV/FormatWAV.htm
à+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager