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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top