Аудиоплеер CSCore (C #) - искажение с помощью SoundTouch - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь реализовать простой аудиоплеер, и я начинаю с примера SoundTouchPitchAndTempo (https://github.com/filoe/cscore). При воспроизведении MP3 звук искажается до неузнаваемости. Если я комментирую ссылку SoundTouch из GetCodecфункция (MainWindowViewModel.cs - строка 129), вывод в порядке. Но, конечно, элементы управления высотой и темпом ничего не делают. Так как это образец, скорее всего, он обычно работает, и я упускаю что-то основное.используя предварительно скомпилированный SoundTouch.dll с сайта Олли. Очевидно, я очень новичок в CSCore, и я немного озадачен. Если кто-то может указать мне правильное направление, чтобы начать поиск, я был бы признателен.

Соответствующий код (из примера проекта:

    private void OpenHandler()
        {
            var fileName = OpenFileDialog("MP3 Files|*.mp3");
            if(string.IsNullOrEmpty(fileName))
            {
                return;
            }

            var waveSource = CodecFactory.Instance.GetCodec(fileName)
                //.AppendSource(x => new SoundTouchSource(x), out _soundTouchSource)
                    .ToSampleSource()
                    .ToWaveSource();

            _soundOut = new WasapiOut();
            _soundOut.Initialize(waveSource);

            TempoSliderValue = 0;
            PitchSliderValue = 0;
        }

Если я включу SoundTouch, не комментируя строку .AppendSource, вывод будет очень искажен.

...