/// <summary>
        ///     Sets the audio stream position
        /// </summary>
        /// <param name="audioStream">The audio stream.</param>
        /// <param name="samplePosition">The audio stream position.</param>
        public static void SetPosition(AudioStream audioStream, long samplePosition)
        {
            if (audioStream == null || !audioStream.IsAudioLoaded()) return;
            if (samplePosition < 0 || samplePosition > audioStream.Length) return;

            var secondPosition = TimeFormatHelper.GetFormattedSeconds(audioStream.SamplesToSeconds(samplePosition));
            DebugHelper.WriteLine($"SetPosition {audioStream.Description} {secondPosition} {samplePosition}");
            Bass.BASS_ChannelSetPosition(audioStream.Channel, samplePosition);
            DebugHelper.WriteLine($"SetPosition END {audioStream.Description} {secondPosition} {samplePosition}");
        }
        /// <summary>
        ///     Sets the duration and start/end volumes for an audio stream volume slide.
        /// </summary>
        /// <param name="audioStream">The audio stream.</param>
        /// <param name="startVolume">The start volume.</param>
        /// <param name="endVolume">The end volume.</param>
        /// <param name="sampleDuration">Sample length duration.</param>
        public static void SetVolumeSlide(AudioStream audioStream, float startVolume, float endVolume,
            long sampleDuration)
        {
            if (audioStream == null || !audioStream.IsAudioLoaded()) return;

            var seconds = audioStream.SamplesToSeconds(sampleDuration);
            SetVolumeSlide(audioStream, startVolume, endVolume, seconds);
        }