Android Visualizer FFT/波形受设备音量影响吗?
我正在使用 Android 2.3.1 上的 Visualizer 类进行一些音乐分析。我发现 FFT 和波形幅度受设备体积的影响。这意味着如果用户调低音量,我会收到很少或根本没有 FFT 数据。
我已经在 Motorola Xoom、Samsung Galaxy Tab 和模拟器上对此进行了测试,它的行为方式是这样的。
我正在使用下面的代码:
mp = new MediaPlayer();
mp.setDataSource("/sdcard/sine1.wav");
mp.prepare();
mp.setLooping(true);
mp.start();
int audioSessionID = mp.getAudioSessionId();
v = new Visualizer(audioSessionID);
v.setEnabled(true);
查看 Visualizer 类 的文档似乎如果我们传入有效的音频会话 ID,那么可视化工具应该对此音频会话进行操作。看起来展示台正在对输出混合进行操作。
还有其他人遇到过这个问题或找到解决方法吗?
谢谢
I'm working on some music analysis using the Visualizer class on Android 2.3.1. I am finding that the FFT and waveform magnitudes are affected by the volume of the device. This means that if the user has the volume turned down I receive little or not FFT data.
I've tested this on a Motorola Xoom, Samsung Galaxy Tab and the emulator and it behaves this way.
I am using the code below:
mp = new MediaPlayer();
mp.setDataSource("/sdcard/sine1.wav");
mp.prepare();
mp.setLooping(true);
mp.start();
int audioSessionID = mp.getAudioSessionId();
v = new Visualizer(audioSessionID);
v.setEnabled(true);
Looking at the docs for the Visualizer class it seems that if we are passing in a valid audio session id then the visualizer should operate upon this audio session. It appears that the Visualizer is operating upon the output mix.
Has anyone else encountered this or found a way around it?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我也面临着同样的问题,但是当我为相同的session id启用均衡器和可视化器时它正在工作。我不知道它的原因,我检查了它从api演示中的可视化器类中删除了均衡器它正在像你一样工作说。
I was also facing the same problem, but it is working when i am enabled the Eqaulizer and Visualizer for same seession id.I dont know the reason for it ,i checked it remove the equalizer from visualizer class in api demos it is working as you said.
可视化工具缩放模式有两个选项:
SCALING_MODE_AS_PLAYED 和 SCALING_MODE_NORMALIZED
如果您希望可视化工具标准化(无论音量大小它都是一致的),则使用 SCALING_MODE_NORMALIZED。
请记住,这会极大地改变发送到可视化工具的值,因此可能需要进行其他调整。
There are two options for the Visualizer scaling mode:
SCALING_MODE_AS_PLAYED and SCALING_MODE_NORMALIZED
If you want the Visualizer to be normalized, as in it's consistent no matter what the volume is, then use SCALING_MODE_NORMALIZED.
Keep in mind though that this drastically changes the values being sent to the Visualizer, so other adjustments may be needed.