PCM音频文件的频率F、音量V、播放速度Speed的改变,C++实现

这篇博客分享了如何使用C++实现对PCM音频文件的频率、音量和播放速度的调整。提供了ChangeVolumeFreq()函数的详细实现,并附带了相关头文件和源文件的内容,方便读者下载和学习。

本文完整代码下载

实现音频改变(频率F、音量V、播放速度Sped)
通过ChangeVolumeFreq()实现

代码

头文件

class CAudioChange
    {
    public:
        void ChangeVolumeFreq(  CAudioSound*             pSound,
                                int                      soundListSize,
                                DWORD                    eachSoundLen,
                                DWORD                    RawDataCnt,
                                double                   SpeedFactor,
                                vector<AUDIO_DATA_TYPE>* __pEachMixingSound);

    private:
        // 两点式直线方程,既(y-y1)/(x-x1)=(y2-y1)/(x2-x1),整理得(y-y1)/(y2-y1)=(x-x1)/(x2-x1)
        // 供F < 1时,线性拟合用
        vector<AUDIO_DATA_TYPE> TwoPointLinearEquation( int x1, AUDIO_DATA_TYPE y1,
                                                        int x2, AUDIO_DATA_TYPE y2,
                                                        int linearFittingNum);
        // F 小于1时,归一化. 
        void FreqNormalizations(double& F);
    };

源文件

#include "StdAfx.h"
#include "AudioDevice.h"
#include <stdexcept>


/******************************************************************
本文件实现音频改变(频率F、音量V、播放速度Sped)
通过ChangeVolumeFreq()实现
*******************************************************************/

using namespace std;
//---------------------------------------------------------------------------------------------
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值