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 }); } }
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; }