lwpaaa
lzhongs
采纳率50%
2016-05-22 09:39

C#录音,用的DirectX,录出来的声音的太小,而且录音这声音小的话就录不到

2
已采纳

C#录音,用的DirectX,录出来的声音的太小,而且录音这声音小的话就录不到,我已经把win7电脑开到最大音量了,是声卡问题?还是程序代码问题?代码就是网上搜索下来的,部分代码如下:

 private WaveFormat CreateWaveFormat()
    {
        WaveFormat format = new WaveFormat();
        format.FormatTag = WaveFormatTag.Pcm;   // PCM
        format.SamplesPerSecond = 16000;        // 采样率:16KHz
        format.BitsPerSample = 16;              // 采样位数:16Bit
        format.Channels = 1;                    // 声道:Mono
        format.BlockAlign = (short)(format.Channels * (format.BitsPerSample / 8));  // 单位采样点的字节数 
        format.AverageBytesPerSecond = format.BlockAlign * format.SamplesPerSecond;
        return format;
        // 按照以上采样规格,可知采样1秒钟的字节数为 16000*2=32000B 约为31K
  1. * }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 5年前

    你先打开windows自带的录音机试试看。你开音量开的是麦克风的还是扬声器的?你说话有没有对着麦克风?换一个麦克风试试看。

    点赞 1 评论 复制链接分享
  • testcs_dn 微wx笑 5年前

    嗯,赞同楼上的说法,用其它的录音工具录制对比一下,如果其它工具也存在相同的问题,再查找技术原因;
    通常底层调用的API都是一样的。

    点赞 1 评论 复制链接分享
  • testcs_dn 微wx笑 5年前

    嗯,赞同楼上的说法,用其它的录音工具录制对比一下,如果其它工具不存在相同的问题,再查找技术原因;
    通常底层调用的API都是一样的。
    写错了,纠正一下。

    点赞 评论 复制链接分享