static void ReadWriteAudio(string input, string output) { var audio = new AudioReader(input); audio.LoadMetadataAsync().Wait(); audio.Load(); using (var writer = new AudioWriter(output, audio.Metadata.Channels, audio.Metadata.SampleRate)) { writer.OpenWrite(true); var frame = new AudioFrame(1); while (true) { // read next sample var f = audio.NextFrame(frame); if (f == null) { break; } writer.WriteFrame(frame); } } }
public async Task ConversionStreamTest() { var path = Res.GetPath(Res.Audio_Mp3); var opath = "out-test-v-2.aac"; try { using var reader = new AudioReader(path); await reader.LoadMetadataAsync(); var encoder = new AACEncoder { Format = "flv" }; using (var filestream = File.Create(opath)) { using (var writer = new AudioWriter(filestream, reader.Metadata.Channels, reader.Metadata.SampleRate, 16, encoder.Create())) { writer.OpenWrite(); reader.Load(); await reader.CopyToAsync(writer); } } using var audio = new AudioReader(opath); await audio.LoadMetadataAsync(); Assert.True(audio.Metadata.Format.FormatName == "flv"); Assert.True(audio.Metadata.Channels == 2); Assert.True(audio.Metadata.Streams.Length == 1); Assert.True(Math.Abs(audio.Metadata.Duration - 1.515102) < 0.2); } finally { if (File.Exists(opath)) { File.Delete(opath); } } }
public async Task ConversionTest() { var path = Res.GetPath(Res.Audio_Ogg); var opath = "out-test-2.mp3"; try { using var reader = new AudioReader(path); await reader.LoadMetadataAsync(); using (var writer = new AudioWriter(opath, reader.Metadata.Channels, reader.Metadata.SampleRate, 16, new MP3Encoder().Create())) { writer.OpenWrite(); reader.Load(); await reader.CopyToAsync(writer); } using var audio = new AudioReader(opath); await audio.LoadMetadataAsync(); Assert.True(audio.Metadata.Format.FormatName == "mp3"); Assert.True(audio.Metadata.Channels == 2); Assert.True(audio.Metadata.Streams.Length == 1); Assert.True(Math.Abs(audio.Metadata.Duration - 1.515102) < 0.2); } finally { if (File.Exists(opath)) { File.Delete(opath); } } }