static void Main(string[] args) { var fileName = @"C:\Users\milkitic\Downloads\HuΣeR Vs. SYUNN feat.いちか - 狂水一華.mp3"; var obj = new AudioDataHelper(fileName); var data = obj.GetData(out var waveFormat); var memoryStream = new MemoryStream(data); var waveStream = new RawSourceWaveStream(memoryStream, waveFormat); var p = new WaveFloatTo16Provider(waveStream); WaveFileWriter.CreateWaveFile("a.wav", p); var reader = new Mp3FileReaderBase(fileName, format => new DmoMp3FrameDecompressor(format)); WaveFileWriter.CreateWaveFile("b.wav", reader); }
public TabPage Create(VrfGuiContext vrfGuiContext, byte[] input) { WaveStream waveStream; if (input == null) { waveStream = new AudioFileReader(vrfGuiContext.FileName); } else if (vrfGuiContext.FileName.EndsWith(".mp3", StringComparison.InvariantCultureIgnoreCase)) { waveStream = new Mp3FileReaderBase(new MemoryStream(input), wf => new Mp3FrameDecompressor(wf)); } else { waveStream = new WaveFileReader(new MemoryStream(input)); } var tab = new TabPage(); var audio = new AudioPlaybackPanel(waveStream); tab.Controls.Add(audio); return(tab); }
public AudioPlayer(Resource resource, TabPage tab) { var soundData = (Sound)resource.DataBlock; var stream = soundData.GetSoundStream(); try { WaveStream waveStream; switch (soundData.SoundType) { case Sound.AudioFileType.WAV: waveStream = new WaveFileReader(stream); break; case Sound.AudioFileType.MP3: waveStream = new Mp3FileReaderBase(stream, wf => new Mp3FrameDecompressor(wf)); break; case Sound.AudioFileType.AAC: waveStream = new StreamMediaFoundationReader(stream); break; default: throw new Exception($"Dont know how to play {soundData.SoundType}"); } var audio = new AudioPlaybackPanel(waveStream); tab.Controls.Add(audio); } catch (Exception e) { Console.Error.WriteLine(e); var msg = new Label { Text = $"NAudio Exception: {e.Message}", Dock = DockStyle.Fill, }; tab.Controls.Add(msg); } }
private void buttonOpen_Click(object sender, EventArgs e) { var ofd = new OpenFileDialog(); ofd.Filter = "MP3 Files|*.mp3"; if (ofd.ShowDialog() == DialogResult.OK) { // Mp3FileReaderBase is the full class, but you have to pass in a decoder using (var stream = new Mp3FileReaderBase(ofd.FileName, waveFormat => new Mp3FrameDecompressor(waveFormat))) { string fileName = Path.GetFileNameWithoutExtension(ofd.FileName) + ".wav"; fileName = Path.Combine(Path.GetTempPath(), fileName); WaveFileWriter.CreateWaveFile(fileName, stream); var p = new Process { StartInfo = new ProcessStartInfo(fileName) { UseShellExecute = true } }; p.Start(); } } }