Come modificare Wasapi Record Bitrate con Naudio?
Domanda
Sto usando Naudio per decodificare, riprodurre e registrare un flusso MP3.Per la registrazione I utilizzo WasapiLoopbackCapture
per salvare il flusso in un file WAV:
if (waveIn == null) {
waveIn = new WasapiLoopbackCapture();
writer = new WaveFileWriter(outputFilename, waveIn.WaveFormat);
waveIn.DataAvailable += new EventHandler<WaveInEventArgs>(waveIn_DataAvailable);
waveIn.RecordingStopped += new EventHandler(waveIn_RecordingStopped);
waveIn.StartRecording();
}
.
Ora sto cercando una soluzione per salvare il file WAV non con 3072 kbit / s (cosa sembra essere standard per il WASAPI).Il flusso MP3 offre 128 kbit / s, quindi questo sarebbe un buon bitrate per il mio file WAV.Ho provato a modificare il waveIn.WaveFormat
ma non ho trovato le proprietà giuste.
Soluzione
Sfortunatamente Wasapi non consente di modificare la frequenza di campionamento per la registrazione del loopback.Devi svolgere la tua conversione della tua velocità di campionamento dopo.Per questo è possibile utilizzare le classi DmoResampler
o WaveFormatConversionStream
in Naudio.
Altri suggerimenti
Non ho familiarità con le astrazioni di Naudio su Wasapi ma puoi forzare le finestre per darti l'audio in uno specifico bitrate / campionsze utilizzando l'API Wasapi C ++. Se questo aiuta