I am posting a file in callback(base64data); to the server using. When I get the file all seems well but the file sounds like white noise. Thanks for your help.
protected void Page_Load(object sender, EventArgs e)
{
var strUser = Request.Form["UserId"];
int userId = Convert.ToInt32(strUser);
var reader = new RawSourceWaveStream(HttpContext.Current.Request.InputStream, new WaveFormat(44100, 16, 1));
var timeStamp = DateTime.Now.ToString("yyyyMMddHHmmssfff");
var target = new WaveFormat(44100, 8, 1);
var lastFileName = timeStamp + "_" + strUser + ".wav";
var saveStreamFile = @"C:\SOUNDBOX\" + lastFileName;
var str = new WaveFormatConversionStream(target, reader);
WaveFileWriter.CreateWaveFile(saveStreamFile, str);
reader.Close();
str.Close();
NOW I HAVE THIS: (please let me know the silly things that jump out at you that could make the wav sound slow motion) But it made a WAV that plays back SLOOOOOWLY:
var saveStreamFile = @"C:\SOUNDBOX\" + lastFileName;
var wavFileStr = Convert.FromBase64String(Request["data"].Replace("-", "+").Replace("_", "/").Replace("\n", String.Empty).Replace("\r", String.Empty).Replace("data:audio/wav;base64,", String.Empty));
MemoryStream stm = new MemoryStream(wavFileStr, 0, wavFileStr.Length);
var target = new WaveFormat(44100, 16, 1);
var reader = new RawSourceWaveStream(stm, new WaveFormat(44100, 16, 1));
var str = new WaveFormatConversionStream(target, reader);
WaveFileWriter.CreateWaveFile(saveStreamFile, str);
reader.Close();
str.Close();
The most likely explanation for the file playing back slowly is that you've got the wrong wave format. Number of channels and sample rate being the most likely explanation.
So where you have new WaveFormat(44100, 16, 1)
, how do you know that is the correct format? I'd suggest trying with 2 channels - new WaveFormat(44100, 16, 2)
, - that will double the playback speed.