Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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();
                }
            }
        }