gpt4 book ai didi

android - 谁将在Android中调用 “Visualizer_process”

转载 作者:行者123 更新时间:2023-12-03 00:17:59 25 4
gpt4 key购买 nike

我想从音频缓冲区捕获音频波形帧,我发现 android.media.audiofx.Visualizer 可以做到这一点,但它只能返回部分和低质量的音频内容

我发现 android.media.audiofx.Visualizer 将在 android4.0 \ frameworks \ base \ media \ libeffects \ visualizer 调用函数 Visualizer_command(VISUALIZER_CMD_CAPTURE)

我发现函数 Visualizer_process 将使音频内容质量降低。我想重写 Visualizer_process ,并想找到谁将调用 Visualizer_process ,但是我无法从Android源代码中找到调用者,有人可以帮助我吗?

非常感谢!

最佳答案

AudioFlinger::PlaybackThread::threadLoop 调用 AudioFlinger::EffectChain::process_l ,后者调用 AudioFlinger::EffectModule::process ,最后调用实际效果的process函数。

如您在AudioFlinger::EffectModule::process中看到的那样

int ret = (*mEffectInterface)->process(mEffectInterface,
&mConfig.inputCfg.buffer,
&mConfig.outputCfg.buffer);
mEffectInterfaceeffect_handle_t,这是 effect_interface_s**effect_interface_s结构(已定义 here)包含许多函数指针( processcommand,...)。加载效果时,将使用实际效果功能的指针填充这些内容。这些效果通过结构提供这些指针(在 EffectVisualizer中为 gVisualizerInterface )。

请注意,这些功能的确切位置在不同的Android版本之间可能有所不同。因此,如果您使用的是Android 4.0,则可能会在AudioFlinger.cpp(或其他位置)中找到其中的一些。

关于android - 谁将在Android中调用 “Visualizer_process”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com