美文网首页
pcm音频数据调节音量大小

pcm音频数据调节音量大小

作者: woo_5857 | 来源:发表于2019-10-21 16:56 被阅读0次

    来源 https://www.jianshu.com/p/50c697bec409

    在网上找到了pcm音量控制这篇文章,文章看起来很高大上,不过我们需要用到的好像就是一个公式而已:

    就是这么个东西,具体解释大家可以点击上面的文章链接看看原理,其中 A1 和 A2 是两个声音的振幅,此处的A2为原始音频振幅,A1为根据所指定db大小计算出来的调节音量后的音频振幅,画不多说,试试效果:作者:寒小枫

    voidRaiseVolume(int16_t* buf,uint64_tsize,floatuRepeat)

    {

        if(!size )

        {

            return;

        }

        //https://www.jianshu.com/p/50c697bec409  分贝调节

        intdb =16;

        double factor =pow(10.0,db /20.0);

    //    printf("==========");

        for(inti =0; i < size; i++){

            inttmp;

            signedshortwData = buf[i];

    //        printf("%d \n ", wData);

            tmp = wData*factor; // 上面所有关于vol的判断,其实都是为了此处*in_buf乘以一个倍数,你可以根据自己的需要去修改

            // 下面的code主要是为了溢出判断

            if(tmp >32767)

                tmp =32767;

            elseif(tmp < -32768)

                tmp = -32768;

            buf[i] = tmp;

        }

    }

    相关文章

      网友评论

          本文标题:pcm音频数据调节音量大小

          本文链接:https://www.haomeiwen.com/subject/mjzqvctx.html