private ISampleProvider BuildAudioStream(string[] urls, double rate, int pitch) { ISampleProvider mixer; using (var client = new HttpClient()) { mixer = new SampleJoiner(urls.Select(u => { var url = AUDIO_DL_PREFIX + u; var oggDownloadRequest = client.GetAsync(url).Result; if (!oggDownloadRequest.IsSuccessStatusCode) { throw new Exception("ogg download fail"); } var oggStream = oggDownloadRequest.Content.ReadAsStreamAsync().Result; return((WaveStream) new NAudio.Vorbis.VorbisWaveReader(oggStream)); })); } return(new AudioStreamModifier(mixer, rate, pitch)); }
private ISampleProvider BuildAudioStream(string[] urls, double rate, int pitch) { ISampleProvider mixer; using (var client = new HttpClient()) { mixer = new SampleJoiner(urls.Select(u => { var url = AUDIO_DL_PREFIX + u; var oggDownloadRequest = client.GetAsync(url).Result; if (!oggDownloadRequest.IsSuccessStatusCode) throw new Exception("ogg download fail"); var oggStream = oggDownloadRequest.Content.ReadAsStreamAsync().Result; return (WaveStream) new NAudio.Vorbis.VorbisWaveReader(oggStream); })); } return new AudioStreamModifier(mixer, rate, pitch); }