Ich kann WdlResamplingSampleProvider für das 16-Bit-Beispiel von Mark Heath in seinem Blog arbeiten;Funktioniert WdlResamplingSampleProvider mit 32 Bit?
int outRate = 16000;
var inFile = @"test.mp3";
var outFile = @"test resampled WDL.wav";
using (var reader = new AudioFileReader(inFile))
{
var resampler = new WdlResamplingSampleProvider(reader, outRate);
WaveFileWriter.CreateWaveFile16(outFile, resampler);
}
außer ich lese eine WAV-Datei anstelle einer MP3-Datei. Aber ich muss wirklich mit 32-Bit-WAV-Dateien (Input und Output) arbeiten, ohne die Bittiefe zu verlieren. Gibt es eine Möglichkeit, dies zu tun?
Wenn ich CreateWaveFile anstelle CreateWaveFile16 aufrufen, erhalte ich den folgenden Fehler; Das Objekt des Typs 'NAudio.WaveSampleProviders.WdlResamplingSampleProvider' kann nicht in den Typ 'NAudio.Wave.IWaveProvider' umgewandelt werden. – timothyjb
gibt es einen SampleToWaveprovider, den Sie verwenden können –
Ich habe versucht, herauszufinden, wie man das alleine macht, aber kein Glück. Sobald ich eine Wave-Datei mit dem AudioFileReader eingelesen habe, benutze ich SampleToWaveProvider, um CreateWaveFile zum Laufen zu bringen. Benutze ich es vor oder nach WdlResamplingSampleProvider? – timothyjb