Audio笔记之AudioMixer

AudioMixer类主要用于处理音频混音,特别是针对立体声的处理。它不支持超过两路的音频,但在代码中寻找并尝试使用downmix effect来处理多路音频。在初始化时,它会加载所有效果库并查找类型为EFFECT_UIID_DOWNMIX的特效,以支持多通道内容。当找到downmix effect时,AudioMixer标记为能处理多通道音频。此外,getTrackName函数用于根据sessionId获取或分配一个新的track,而deleteTrackName则用于释放已分配的track。
摘要由CSDN通过智能技术生成

bool AudioMixer::isMultichannelCapable = false;//是否支持大于两路的音频
//downmix effect,用于处理大于两路音频的特效,主要是做向下变换
effect_descriptor_t AudioMixer::dwnmFxDesc;
// Ensure mConfiguredNames bitmask is initialized properly on all architectures.
// The value of 1 << x is undefined in C when x >= 32.
// 1、初始化state_t对象mState,最多保存32个track,对应thread中的track对象
// 2、加载支持的effect lib和effect
// 3、通过类型EFFECT_UIID_DOWNMIX寻找处理多路音频特效的downmix effect对象
AudioMixer::AudioMixer(size_t frameCount, uint32_t sampleRate, uint32_t maxNumTracks)
    :   mTrackNames(0), mConfiguredNames((maxNumTracks >= 32 ? 0 : 1 << maxNumTracks) - 1),
        mSampleRate(sampleRate)
{
    // AudioMixer is not yet capable of multi-channel beyond stereo
    COMPILE_TIME_ASSERT_FUNCTION_SCOPE(2 == MAX_NUM_CHANNELS);

    ALOG_ASSERT(maxNumTracks <= MAX_NUM_TRACKS, "maxNumTracks %u > MAX_NUM_TRACKS %u",
            maxNumTra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值