/// <summary> /// Initializes a new instance of the <see cref="AudioResampler"/> class. /// </summary> /// <param name="pipeline">The pipeline to add the component to.</param> /// <param name="configuration">The component configuration.</param> public AudioResampler(Pipeline pipeline, AudioResamplerConfiguration configuration) : base(pipeline) { this.configuration = configuration; this.currentInputFormat = configuration.InputFormat; // create the audio resampler this.resampler = new MFResampler(); // initialize the resampler this.resampler.Initialize( this.Configuration.TargetLatencyInMs, this.Configuration.InputFormat, this.Configuration.OutputFormat, this.AudioDataAvailableCallback); }
/// <summary> /// Resamples an audio stream. /// </summary> /// <param name="source">A stream of audio to be resampled.</param> /// <param name="configuration">The resampler configuration.</param> /// <param name="deliveryPolicy">An optional delivery policy.</param> /// <returns>A stream of resampled audio.</returns> public static IProducer <AudioBuffer> Resample(this IProducer <AudioBuffer> source, AudioResamplerConfiguration configuration, DeliveryPolicy <AudioBuffer> deliveryPolicy = null) { return(source.PipeTo(new AudioResampler(source.Out.Pipeline, configuration), deliveryPolicy)); }
/// <summary> /// Resamples an audio stream. /// </summary> /// <param name="source">A stream of audio to be resampled.</param> /// <param name="configuration">The resampler configuration.</param> /// <returns>A stream of resampled audio.</returns> public static IProducer <AudioBuffer> Resample(this IProducer <AudioBuffer> source, AudioResamplerConfiguration configuration) { return(source.PipeTo(new AudioResampler(source.Out.Pipeline, configuration))); }