我的本本声音非常小,但又不想用低音炮,前段时间在搜狐上看视频的时候,发现他们的网页播放器竟然可以将声音持续放大至500%以上,现在网上也有类似的软件,比如说“电脑扩音器”(我没用过,只听过介绍),现在想知道下C#能不能做到这种功能,以及用什么去实现,winform中的最好,请各位大虾赐教下子

解决方案 »

  1.   

    通过调用系统API可以设置音量,但是应该最大不会超过你的喇叭的最大音量吧 
      

  2.   

    很明显和硬件相关。不然你可以把声音放大无数倍,那俺就奇怪了央视春晚那个大厅发那么多扩音设备干吗,直接放几台电脑就成了ps:无论是那种音响,本质上都是通过电流驱动一个电磁体震动发声。(如果要扩音,要么就是直接更改电流,要么添加物理的三极管放大电路)所以理论上,你能改变的只有电流。理论上使用api和中断向量是可以改变其输出电流滴
      

  3.   

    直接放大波形的算法:buff为声音数据,scale为缩放量
    void WaveScalse(short *buff,int len,int scale)
    {
    int i;
    float floatdata;
    for(i = 0;i < len; i++)
    {
    floatdata = buff[i]*scale;
    if(floatdata <  -32767.5)
    {
    floatdata = -32768;
    }
    else if(floatdata > (FLOAT)32766.5)
    {
    floatdata = 32767;
    }
    buff[i] = (short)floatdata;
    }

    }
      

  4.   

    LZ的这个想法应该可以实现,不想有些人说的 可以无限扩大,系统的最大音量厂商在出厂时候肯定给有限制的,  LZ的想法有点像给CPU超频
      

  5.   

    非常感谢   
       编写声卡驱动就免了   小菜技术还不敢往那方面想   问一下   你觉得那些flash的这种效果是用什么做的呢?   也是放大波形吗?   我要做到这种就可以了
        小菜在此再次感谢各位啦
      

  6.   

    [Quote=引用 31 楼 wanghui0380 的回复:]
    功放(功率放大器)你就明白了,问题的关键在声卡的功率上面[/Quote]