static bool CheckWav(string fileName) { WavHeader wh = null; try { using (var br = new BinaryReader(File.Open(fileName, FileMode.Open))) wh = WavHeader.WavHeaderFromBinaryReader(br); } catch (Exception e) { Console.WriteLine(e.Message); } return(wh.ChunkId == "RIFF" && wh.Format == "WAVE" && wh.Subchunk11D == "fmt " && wh.Subchunk2ID == "data"); }
//////////////////////////////////////////////////////// // BONUS //////////////////////////////////////////////////////// static void ReadHeader(string fileName) { if (!CheckWav(fileName)) { Console.WriteLine("Ce fichier n'est pas un fichier .wav"); return; } WavHeader wh; using (var br = new BinaryReader(File.Open(fileName, FileMode.Open))) wh = WavHeader.WavHeaderFromBinaryReader(br); foreach (var f in Assembly.GetExecutingAssembly().GetType(typeof(WavHeader).ToString()).GetFields()) { Console.WriteLine(f.Name + " : " + f.GetValue(wh)); } }
static void PrintInfos(string fileName) { if (!CheckWav(fileName)) { Console.WriteLine("Ce fichier n'est pas un fichier .wav"); return; } WavHeader wh; using (var br = new BinaryReader(File.Open(fileName, FileMode.Open))) wh = WavHeader.WavHeaderFromBinaryReader(br); Console.WriteLine("Nom : " + fileName); Console.WriteLine("Taille : " + wh.ChunkSize); Console.WriteLine("Compression : " + (wh.AudioFormat == 1 ? "Compressé" : "Non compressé")); Console.WriteLine("Canaux : " + wh.NumChannels); Console.WriteLine("Fréquence d'échantillonnage : " + wh.SampleRate); }
public static WavHeader WavHeaderFromBinaryReader(BinaryReader br) { var waveHeader = new WavHeader { ChunkId = new string(br.ReadChars(4)), ChunkSize = br.ReadInt32(), Format = new string(br.ReadChars(4)), Subchunk11D = new string(br.ReadChars(4)), Subchunk1Size = br.ReadInt32(), AudioFormat = br.ReadInt16(), NumChannels = br.ReadInt16(), ByteRate = br.ReadInt32(), SampleRate = br.ReadInt32(), BlockAlign = br.ReadInt16(), BitsPerSample = br.ReadInt16(), Subchunk2ID = new string(br.ReadChars(4)), Subchunk2Size = br.ReadInt32() }; return(waveHeader); }
public static WavHeader WavHeaderFromBinaryReader(BinaryReader br) { var waveHeader = new WavHeader { ChunkId = new string(br.ReadChars(4)), ChunkSize = br.ReadInt32(), Format = new string(br.ReadChars(4)), Subchunk11D = new string(br.ReadChars(4)), Subchunk1Size = br.ReadInt32(), AudioFormat = br.ReadInt16(), NumChannels = br.ReadInt16(), ByteRate = br.ReadInt32(), SampleRate = br.ReadInt32(), BlockAlign = br.ReadInt16(), BitsPerSample = br.ReadInt16(), Subchunk2ID = new string(br.ReadChars(4)), Subchunk2Size = br.ReadInt32() }; return waveHeader; }