Esempio n. 1
0
        public async Task <PCM16Audio> ReadFileAsync(string filename)
        {
            byte[] mp3data = File.ReadAllBytes(filename);
            using (var output = new MemoryStream())
                using (var input = new MemoryStream(mp3data, false))
                    using (var mp3 = new MP3Stream(input)) {
                        await mp3.CopyToAsync(output);

                        byte[]  array   = output.ToArray();
                        short[] samples = ToUInt16Array(array);
                        return(new PCM16Audio(mp3.ChannelCount, mp3.Frequency, samples)
                        {
                            OriginalMP3 = mp3data
                        });
                    }
        }
Esempio n. 2
0
        private async void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;
            button2.Enabled = false;
            if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
            {
                using (var stream = new MP3Stream(openFileDialog1.FileName))
                    using (var ms = new MemoryStream())
                    {
                        await stream.CopyToAsync(ms);

                        var wrapper = new AudioWrapper(ms.ToArray(), stream.ChannelCount, stream.Frequency);
                        using (var dialog = new BrstmConverterDialog(wrapper))
                        {
                            if (dialog.ShowDialog(this) == DialogResult.OK)
                            {
                                propertyGrid1.SelectedObject = wrapper;
                            }
                        }
                    }
            }
            button1.Enabled = true;
            button2.Enabled = true;
        }