public async Task Transcode(CancellationToken ct, IWaveStreamProvider stream, Stream targetStream) { using (var fileWriter = new NAudio.Wave.WaveFileWriter(targetStream, stream.WaveFormat)) { await stream.Stream.CopyToAsync(fileWriter); } }
public static async Task TranscodeInternal(CancellationToken ct, IWaveStreamProvider stream, Stream targetStream) { using (var mp3Writer = new NAudio.Lame.LameMP3FileWriter(targetStream, stream.WaveFormat, NAudio.Lame.LAMEPreset.VBR_90)) { await stream.Stream.CopyToAsync(mp3Writer, 81920, ct); } }
public async Task TranscodeInternal(CancellationToken ct, IWaveStreamProvider stream, Stream targetStream) { var tempFilename = Path.Combine(Path.GetTempPath(), GetTranscodedFileName(Guid.NewGuid().ToString() + ".extension")); MediaFoundationEncoder.EncodeToMp3(stream, tempFilename, 320000); using (var tempStream = new FileStream(tempFilename, FileMode.Open, FileAccess.Read)) { await tempStream.CopyToAsync(targetStream, 81920, ct); } File.Delete(tempFilename); }
public Task Transcode(CancellationToken ct, IWaveStreamProvider stream, Stream targetStream) { if (stream == null) throw new ArgumentNullException(nameof(stream)); if (targetStream == null) throw new ArgumentNullException(nameof(targetStream)); return TranscodeInternal(ct, stream, targetStream); }