Android Audio基础——音频流重采样(十三)

        在音频处理过程中,音频流重采样是一个常见的需求,尤其是在不同设备之间进行音频传输或播放时。重采样就是将不同采样率的音频统一到相同的采样率(例如,将 44.1 kHz 的音频转换为 48 kHz 的音频),主要用于解决输入音频流的采样率与输出设备支持的采样率不匹配的问题。

一、重采样处理

        在上一篇文章的 process__validate() 函数中设置判断了是否需要重采样。

1、AudioMixerBase

源码位置:/frameworks/av/media/libaudioprocessing/AudioMixerBase.cpp

process__validate

if ((n & NEEDS_CHANNEL_COUNT__MASK) == NEEDS_CHANNEL_1 && t->channelMask == AUDIO_CHANNEL_OUT_MONO // MONO_HACK
        && isAudioChannelPositionMask(t->mMixerChannelMask)) { // 重采样单声道
    t->hook = TrackBase::getTrackHook(TRACKTYPE_RESAMPLEMONO, t->mMixerChannelCount,
            t->mMixerInFormat, t->

猜你喜欢

转载自blog.csdn.net/c19344881x/article/details/142821850