我有MediaFoundationEncodern音訊1.7 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)。
有幾件事要嘗試:1.運行WPF演示應用程序來枚舉MF編碼器和解碼器,並檢查是否確實有AAC編碼器。 2.嘗試使用「.mp4」文件擴展名。 –
感謝Mark的幫助,你是對的,問題出在MF編碼器上,我在Windows 8上成功運行上面的代碼。但文件大小增長的問題仍然存在。你能幫助解決這個問題嗎? –