2012-05-08 25 views
0

NAudioを使用してWAVファイルをWMAファイルに変換しようとしています。私はそれを部分的に動作させることに成功したが、サウンドエフェクトの最後の数秒は止められた。NAudioでWMAを保存する

WaveFileReader wr = new WaveFileReader(@"C:\mywav.wav"); 
WmaWriter ww = new WmaWriter(new FileStream(@"C:\mywma.wma",FileMode.Create),new WaveFormat(44100,2),profile); 

byte[] buff = null; 

int read = 0; 

buff=new byte[wr.Length]; 
read = wr.Read(buff,0,buff.Length); 
while ((read > 0)) 
{ 
    ww.Write(buff,0,read); 
    read = wr.Read(buff,0,buff.Length); 
} 

これは部分的にしかWMAファイルやないで読んだ全WAVファイルを書き込みます。また、C#でNAudioを必要とせずにWMAに変換する方法はありますか?

+0

これは、バッファリングに関連し、適切に廃棄しない可能性があります。 'WmaWriter'がそれを許すならば、最後に' Flush() 'と' Close() 'を追加してください。あるいは、ライターの周りに 'using'ブロックを使用して、正しく配置されていることを確認してください。両方が必要な場合があります。 – yamen

+0

私はこれで終日働いていて、必要な '使用する'ブロックでした。どうもありがとう!回答として投稿してください、私は受け入れます。 – TryNCode

答えて

2

コメントで説明したように、ストリームがフラッシュされて適切に閉じられるように、ライター(実際にはリーダー)にusingブロックを使用します。

関連する問題