首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谁会在Android中称"Visualizer_process“

谁会在Android中称"Visualizer_process“
EN

Stack Overflow用户
提问于 2013-12-18 03:32:43
回答 1查看 148关注 0票数 0

我想从音频缓冲区捕获音频波形帧,我发现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,,但是我找不到安卓源代码中的调用者,有人能帮我吗?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-18 10:20:19

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

正如您在AudioFlinger::EffectModule::process中所看到的,这里有一个呼叫

代码语言:javascript
运行
复制
int ret = (*mEffectInterface)->process(mEffectInterface,
                                       &mConfig.inputCfg.buffer,
                                       &mConfig.outputCfg.buffer);

mEffectInterface是一个effect_handle_t,它是一个effect_interface_s**effect_interface_s结构(定义的这里)包含许多函数指针(processcommand、.)。在加载效果时,用指针填充实际效果的函数。效果通过一个结构(在EffectVisualizer中是gVisualizerInterface)提供这些指针。

请注意,在不同的Android版本中,这些函数的确切位置可能有所不同。因此,如果您查看Android4.0,您可能会在AudioFlinger.cpp (或其他地方)中找到其中的一些。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20649217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档