У меня проблема с MediaFoundationEncoder
Мне нужно записать из файла устройства ввода в формате AAC, я пишу следующий код:
private Timer timer;
private static IWaveIn _waveIn;
private static IWaveProvider _provider;
public void StartRecorder()
{
_waveIn = new WaveInEvent
{
WaveFormat = new WaveFormat(8000, 1)
};
_provider = new WaveInProvider(_waveIn);
_waveIn.DataAvailable += OnDataAvailable;
_waveIn.StartRecording();
//for testing purpose write only first 5 seconds.
timer = new Timer(5000);
timer.Elapsed += (sender, args) => Stop();
timer.Start();
}
private void Stop()
{
timer.Stop();
_waveIn.StopRecording();
_waveIn.Dispose();
_waveIn = null;
var outputFilename = String.Format("D:\\{0:yyy-mm-dd HH-mm-ss}.aac", DateTime.Now);
MediaFoundationEncoder.EncodeToAac(_provider, outputFilename);
_provider = null;
}
Также пробовал использовать MediaFoundationEncoder.EncodeToWma - НО размер файла продолжал расти даже после остановки записи и удаления _waveIn. Временная шкала в файле правильная, что-то записывает в файл мусорные байты.
P.S. Я использую последнюю сборку NAudio (1.7).