2016-04-06 4 views
0

WdlResamplingSampleProviderはMark Heathがブログで提供している16ビットのサンプルで動作するようになりました。WdlResamplingSampleProviderは32ビットで動作しますか?

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); 
} 

私はmp3ファイルの代わりにwavファイルを読んでいます。しかし、私は本当にビット深度を失うことなく32ビットwavファイル(入力と出力)で作業する必要があります。これを行う方法はありますか?

答えて

0

WdlResamplingSampleProviderは、32ビット浮動小数点(IEEE)サンプルで動作します。したがって、入力がそうでない場合、AudioFileReaderは既に32ビットのfloatに変換されています。だから、あなたが出力でやることはあなた次第です。 CreateWaveFileに電話すると、32ビット浮動小数点WAVファイルが得られます。

+0

CreateWaveFile16ではなくCreateWaveFileを呼び出すと、次のエラーが発生します。タイプ 'NAudio.WaveSampleProviders.WdlResamplingSampleProvider'のオブジェクトを 'NAudio.Wave.IWaveProvider'とタイプすることができません。 – timothyjb

+0

あなたが使用できるSampleToWaveプロバイダがあります –

+0

私は自分でこれを行う方法を見つけようとしましたが、運はありません。 AudioFileReaderでWaveファイルを読み込むと、SampleWaveFileを使ってCreateWaveFileを動作させるにはどうすればいいですか? WdlResamplingSampleProviderの前後に使用しますか? – timothyjb

関連する問題