Сбой CSCore при изменении частоты дискретизации и записи в файл

Я пытаюсь использовать библиотеку CSCore.net для преобразования звуковых файлов в определенный формат для другого процесса. Я использую его в Unity, но я не думаю, что это имеет отношение к проблеме, так как в остальном она работает отлично.

У меня есть этот код прямо сейчас:

using (IWaveSource source = CodecFactory.Instance.GetCodec(audioPath)) {
    using (IWaveSource destination = source.ToSampleSource()
        .ChangeSampleRate(16000)
        .ToMono()
        .ToWaveSource(16)) {

        audioPath = Application.dataPath + "/" + Path.GetFileNameWithoutExtension(audioPath) + "_temp_converted" + Path.GetExtension(audioPath);

        destination.WriteToFile(audioPath);
    }
}

Кажется, это сочетание изменения частоты дискретизации и записи файла, вызывающего сбой. Если я удаляю строку.ChangeSampleRate (или заменяю 16000 на текущую частоту дискретизации файла), то она прекрасно сохраняет моно 16-битный файл.wav, и если я сохраняю эту строку, но не пытаюсь записать ее в файл Unity не падает.

Кто-нибудь еще испытывал это или имел какое-то представление о том, что может быть причиной? Я начинаю рвать на себе волосы немного с этим!

Благодарю.

0 ответов

Другие вопросы по тегам