C# NAudio 在另一页 POST 之后制作 Noise WAV 文件没有错误
C# NAudio makes Noise WAV file without errors after POST from another page
我正在回调中发布一个文件(base64data);到服务器使用。当我拿到文件时,一切似乎都很好,但文件听起来像白噪音。感谢您的帮助。
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();
现在我有了这个:(请让我知道突然跳到你身上的那些愚蠢的事情,这些事情可能会使 wav 声音慢动作)
但它制作了一个播放缓慢的 WAV:
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();
文件播放缓慢的最可能解释是您使用了错误的波形格式。通道数和采样率是最可能的解释。
所以你有 new WaveFormat(44100, 16, 1)
,你怎么知道那是正确的格式?我建议尝试使用 2 个频道 - new WaveFormat(44100, 16, 2)
, - 这将使播放速度加倍。
我正在回调中发布一个文件(base64data);到服务器使用。当我拿到文件时,一切似乎都很好,但文件听起来像白噪音。感谢您的帮助。
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();
现在我有了这个:(请让我知道突然跳到你身上的那些愚蠢的事情,这些事情可能会使 wav 声音慢动作) 但它制作了一个播放缓慢的 WAV:
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();
文件播放缓慢的最可能解释是您使用了错误的波形格式。通道数和采样率是最可能的解释。
所以你有 new WaveFormat(44100, 16, 1)
,你怎么知道那是正确的格式?我建议尝试使用 2 个频道 - new WaveFormat(44100, 16, 2)
, - 这将使播放速度加倍。