Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 /// <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));
 }
Beispiel #3
0
 /// <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)));
 }