Сбой 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 не падает.
Кто-нибудь еще испытывал это или имел какое-то представление о том, что может быть причиной? Я начинаю рвать на себе волосы немного с этим!
Благодарю.