C# NAudio 在从另一个页面 POST 后生成 Noise WAV 文件而没有错误

标签 c# audio wav naudio

我在回调(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();

最佳答案

文件播放缓慢的最可能的解释是您的波形格式错误。 channel 数和采样率是最可能的解释。

所以你有new WaveFormat(44100, 16, 1) ,你怎么知道这是正确的格式?我建议尝试使用 2 个 channel - new WaveFormat(44100, 16, 2) , - 这将使播放速度加倍。

关于C# NAudio 在从另一个页面 POST 后生成 Noise WAV 文件而没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242969/

相关文章:

c# - Razor 中的类型检查

c# - 什么是NullReferenceException,如何解决?

c++ - 如何使用TagLib-C++从MP3文件读取XingHeaders,VBRIHeaders和sampleCount

node.js - 如何在nodejs中为wav模块使用.Write函数

java - 程序针对特定 .WAV 文件返回 "could not get audio input stream from input file"

c# - AxWindowsMediaPlayer : pause on last frame

c# - Keydown 事件触发两次

android - 设置最大音频电平,不需要警报消息

Android:在Android中录制音频然后将音频读入python

audio - Libsox编码