0
我試圖解碼接收到的RTP流並使用NAudio將其保存到.wav文件,類似於How to decode RTP packets and save it has .wav file。NAudio解碼ucm到pcm
我試過幾種不同的方法,但都沒有導致Windows Media Player識別的.wav文件。
下面是我如何定義我的波形文件編寫器。
var waveFileWriter = new WaveFileWriter("out.wav", new WaveFormat(8000, 16, 1));
然後對每個RTP包我收到我用:
private void SampleReceived(byte[] sample)
{
if (sample != null)
{
for (int index = 0; index < sample.Length; index++)
{
short pcm = MuLawDecoder.MuLawToLinearSample(sample[index]);
waveFileWriter.WriteByte((byte)(pcm & 0xFF));
waveFileWriter.WriteByte((byte)(pcm >> 8));
}
}
}
代碼運行沒有錯誤,但是當我嘗試打開Windows Media Player中的.wav文件我得到一個錯誤。我用WireShark確認RTP流是ulaw。這是NAudio使用的正確方法嗎?
您是否檢出了NAudio支持/教程網站 - http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html – MethodMan 2012-03-04 00:23:03
直到現在我還沒有看到它。我看了一下,但沒有解決我的問題跳到我身上。 – sipwiz 2012-03-04 02:29:37