/// <summary> /// Creates Sample provider for cached AudioData. /// </summary> /// <param name="audioData">Audio data.</param> /// <param name="playbackToken">Playback token.</param> /// <param name="masterVolumeProvider">Master volume provider.</param> /// <param name="volume">Volume for audio playback.</param> /// <param name="useParallel">true if use parallel.</param> public AudioDataSampleProvider(AudioData audioData, PlaybackToken playbackToken, IMasterVolumeProvider masterVolumeProvider, float volume = 1.0f, bool useParallel = false) { this.audioData = audioData; this.playbackToken = playbackToken; this.masterVolumeProvider = masterVolumeProvider; this.volume = volume; this.useParallel = useParallel; }
/// <summary> /// Creates Sample provider for cached AudioData. /// </summary> /// <param name="audioData">Audio data.</param> /// <param name="playbackToken">Playback token.</param> /// <param name="masterVolumeProvider">Master volume provider.</param> /// <param name="volume">Volume for audio playback.</param> /// <param name="useParallel">true if use parallel.</param> public AudioDataFileSampleProvider(AudioData audioData, PlaybackToken playbackToken, IMasterVolumeProvider masterVolumeProvider, float volume = 1.0f, bool useParallel = false) : base(audioData, playbackToken, masterVolumeProvider, volume, useParallel) { string filePath = audioData.FilePath; if (filePath != null) { this.reader = new AudioFileReader(filePath); this.isAudioFileReaderDisposed = false; this.resampler = AudioData.CreateResampler(this.reader, audioData.WaveFormat, audioData.ResamplingQuality); if (this.resampler != null) { this.stream = resampler.ToSampleProvider(); } else { this.stream = reader; } } }
/// <summary> /// Creates Sample provider for cached AudioData. /// </summary> /// <param name="audioData">Audio data.</param> /// <param name="playbackToken">Playback token.</param> /// <param name="masterVolumeProvider">Master volume provider.</param> /// <param name="volume">Volume for audio playback.</param> /// <param name="useParallel">true if use parallel.</param> public CachedAudioDataSampleProvider(AudioData audioData, PlaybackToken playbackToken, IMasterVolumeProvider masterVolumeProvider, float volume = 1.0f, bool useParallel = false) : base(audioData, playbackToken, masterVolumeProvider, volume, useParallel) { this.position = 0L; }