private void tsbOpen_Click(object sender, EventArgs e) { if (ofdAudio.ShowDialog() == DialogResult.OK) { string fileName = ofdAudio.FileName; IAudioReader arw = null; switch (Path.GetExtension(fileName.ToLower())) { case ".avi": arw = new AviReader(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite)); if (!((AviReader)arw).HasAudio) { MessageBox.Show(string.Format("'{0}' file is not contains audio data", fileName)); return; } break; case ".au": case ".snd": arw = new AuReader(File.OpenRead(fileName)); break; case ".wav": arw = new WaveReadWriter(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite)); break; case ".mp3": arw = new Mp3ReadWriter(File.Open(fileName, FileMode.Open, FileAccess.ReadWrite)); break; default: arw = new DsReader(fileName); if (!((DsReader)arw).HasAudio) { MessageBox.Show(string.Format("'{0}' file is not contains audio data", fileName)); return; } break; //FormatDialog fd = new FormatDialog(false); //if (fd.ShowDialog() == DialogResult.OK) //{ // arw = new RawReadWriter(stream, fd.Format); // break; //} //else //{ // return; //} } rp.Open(arw); } }
private string[] IntspectFile(string fileName) { ID3v1 m_id3; Dictionary<WaveInfo, string> m_waveTags = null; IAudioReader ar = null; Stream stream = null; string ext = Path.GetExtension(fileName.ToLower()); m_id3 = null; m_waveTags = null; switch (ext) { case ".avi": stream = File.OpenRead(fileName); ar = new AviReader(stream); if (!((AviReader)ar).HasAudio) { return new string[] { string.Format("'{0}' file is not contains audio data", fileName) }; } break; case ".au": case ".snd": ar = new AuReader(File.OpenRead(fileName)); break; case ".wav": stream = File.OpenRead(fileName); ar = new WaveReader(stream); m_waveTags = (ar as WaveReader).ReadInfoTag(); break; case ".mp3": stream = File.OpenRead(fileName); ar = new Mp3Reader(stream); Mp3Reader mrID3 = new Mp3Reader(File.OpenRead(fileName)); m_id3 = mrID3.ReadID3v1Tag(); break; default: ar = new DsReader(fileName); if (!((DsReader)ar).HasAudio) { return new string[] { string.Format("'{0}' file is not contains audio data", fileName) }; } break; } IntPtr format = ar.ReadFormat(); WaveFormat wf = AudioCompressionManager.GetWaveFormat(format); List<string> list = new List<string>(); list.Add(string.Format("Opening {0}", fileName)); list.Add(string.Format("{0}, {1} Hz, {2} channels, {3} bits per sample", GetFormatTagName(wf.wFormatTag), wf.nSamplesPerSec, wf.nChannels, wf.wBitsPerSample)); list.Add(string.Format("Block Align: {0}, Average Bytes Per Second: {1}", wf.nBlockAlign, wf.nAvgBytesPerSec )); TimeSpan duration = TimeSpan.FromMilliseconds(ar.GetDurationInMS()); list.Add(string.Format("Duration: {0}", duration)); if (m_id3 != null) { list.Add("--------- ID3 -----------"); list.Add(string.Format("Title: {0}", m_id3.Title)); list.Add(string.Format("Artist: {0}", m_id3.Artist)); list.Add(string.Format("Album: {0}", m_id3.Album)); list.Add(string.Format("Year: {0}", m_id3.Year)); list.Add(string.Format("Genre: {0}", m_id3.Genre.ToString())); list.Add(string.Format("Comment: {0}", m_id3.Comment)); } if (m_waveTags != null) { list.Add("--------- Wave tags -----------"); foreach(WaveInfo key in m_waveTags.Keys) list.Add(string.Format("{0}: {1}", key.ToString(), m_waveTags[key])); } ar.Close(); return list.ToArray(); }
private string[] IntspectFile(string fileName) { ID3v1 m_id3; Dictionary <WaveInfo, string> m_waveTags = null; IAudioReader ar = null; Stream stream = null; string ext = Path.GetExtension(fileName.ToLower()); m_id3 = null; m_waveTags = null; switch (ext) { case ".avi": stream = File.OpenRead(fileName); ar = new AviReader(stream); if (!((AviReader)ar).HasAudio) { return(new string[] { string.Format("'{0}' file is not contains audio data", fileName) }); } break; case ".au": case ".snd": ar = new AuReader(File.OpenRead(fileName)); break; case ".wav": stream = File.OpenRead(fileName); ar = new WaveReader(stream); m_waveTags = (ar as WaveReader).ReadInfoTag(); break; case ".mp3": stream = File.OpenRead(fileName); ar = new Mp3Reader(stream); Mp3Reader mrID3 = new Mp3Reader(File.OpenRead(fileName)); m_id3 = mrID3.ReadID3v1Tag(); break; default: ar = new DsReader(fileName); if (!((DsReader)ar).HasAudio) { return(new string[] { string.Format("'{0}' file is not contains audio data", fileName) }); } break; } IntPtr format = ar.ReadFormat(); WaveFormat wf = AudioCompressionManager.GetWaveFormat(format); List <string> list = new List <string>(); list.Add(string.Format("Opening {0}", fileName)); list.Add(string.Format("{0}, {1} Hz, {2} channels, {3} bits per sample", GetFormatTagName(wf.wFormatTag), wf.nSamplesPerSec, wf.nChannels, wf.wBitsPerSample)); list.Add(string.Format("Block Align: {0}, Average Bytes Per Second: {1}", wf.nBlockAlign, wf.nAvgBytesPerSec)); TimeSpan duration = TimeSpan.FromMilliseconds(ar.GetDurationInMS()); list.Add(string.Format("Duration: {0}", duration)); if (m_id3 != null) { list.Add("--------- ID3 -----------"); list.Add(string.Format("Title: {0}", m_id3.Title)); list.Add(string.Format("Artist: {0}", m_id3.Artist)); list.Add(string.Format("Album: {0}", m_id3.Album)); list.Add(string.Format("Year: {0}", m_id3.Year)); list.Add(string.Format("Genre: {0}", m_id3.Genre.ToString())); list.Add(string.Format("Comment: {0}", m_id3.Comment)); } if (m_waveTags != null) { list.Add("--------- Wave tags -----------"); foreach (WaveInfo key in m_waveTags.Keys) { list.Add(string.Format("{0}: {1}", key.ToString(), m_waveTags[key])); } } ar.Close(); return(list.ToArray()); }