0
我正在使用下面的代碼塊從我的麥克風接收樣本,並將它們傳遞到SIP呼叫上的RTP通道。問題是樣本每200毫秒到達一次,而我期望它們每20毫秒。 20ms採樣間隔爲20ms採樣間隔的正確大小,只是20ms採樣只能每200ms到達一次。我可能在設置WaveInEvent時做一些傻事?WaveInEvent示例事件頻率
var _waveInEvent = new WaveInEvent();
_waveInEvent.BufferMilliseconds = 20;
_waveInEvent.NumberOfBuffers = 1;
_waveInEvent.DeviceNumber = 0;
_waveInEvent.DataAvailable += RTPChannelSampleAvailable;
_waveInEvent.WaveFormat = new WaveFormat(8000, 16, 1);
我每次獲得320個字節,但由於某種原因每200毫秒而不是每20毫秒。 – sipwiz 2012-03-21 19:48:00
好的,所以緩衝區大小是正確的,它不只是跟上。嘗試2或3緩衝區和100ms,看看你得到什麼頻率。 – 2012-03-22 09:57:50
工作。我能夠使用50ms和4個緩衝區(不知道這是否有所作爲),並每隔50ms獲取一次採樣。 NAudio是否將緩衝區排隊?我的意思是我可以依賴DataAvailable事件觸發每個樣本,還是一個事件可以有兩個或更多個樣本排隊? – sipwiz 2012-03-22 11:19:43