更改采样率和写入文件时,CSCore崩溃

时间:2016-04-03 15:05:43

标签: c# unity3d mono 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 个答案:

没有答案