Android Visualizer FFT数据取决于音量

Android Visualizer FFT数据取决于音量,第1张

概述我正在为使用Android Visualizer类的Unity应用程序编写插件.我正在使用getFft() function和提供的代码来获取FFT幅度.返回的值取决于音量-较高的音量表示较高的值,较小的音量则较小.这是我初始化可视化器的构造函数:private PluginClass() { errors = new int[2]; int

我正在为使用Android Visualizer类的Unity应用程序编写插件.我正在使用getFft() function和提供的代码来获取FFT幅度.返回的值取决于音量-较高的音量表示较高的值,较小的音量则较小.

这是我初始化可视化器的构造函数:

private PluginClass() {    errors = new int[2];    int size = Visualizer.getCaptureSizeRange()[1];    // Equalizer    Equalizer mEqualizer = new Equalizer(0,0);    // Visualizer    this.visualizer = new Visualizer(0);    this.visualizer.setEnabled(false);    mEqualizer.setEnabled(true);    this.visualizer.setCaptureSize(size);    if (androID.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {       this.visualizer.setScalingMode(SCAliNG_MODE_norMAliZED);       this.visualizer.setMeasurementMode(MEASUREMENT_MODE_PEAK_RMS);    }    this.visualizer.setEnabled(true);    this.waveFormData = new byte[size];    this.fftData = new byte[size];}

我正在设置均衡器(在创建Visualizer之前,在创建Visualizer之后,但在禁用它之前,在禁用它之后,我几乎都称呼setEnabled).

缩放模式设置为规范化,当我调用getScalingMode()时,我可以确认它确实设置为SCAliNG_MODE_norMAliZED.

有人对这是为什么有任何想法吗?在此问题的另一副本中,没有任何解释,一个答案说使用setVolumeControlStream(AudioManager.STREAM_MUSIC);.我尝试了一下都无济于事,但我不明白为什么它仍然可以工作.

OP放弃了之前曾问过这个问题的问题,而回答者还悬而未决,没有提供任何代码,因此我不得不打开这个问题.这样,我也可以为这个问题添加赏金.

我在VR模式下运行该应用程序,以防VR和AndroID Java和Unity不能很好地配合使用时出现一些晦涩的错误.

谢谢!

编辑这是我用来实际生成FFT幅度的代码:

public float[] getFftMagnitudes() {    this.errors[0] = this.visualizer.getFft(this.fftData);    int n = this.fftData.length;    float[] magnitudes = new float[n / 2 + 1];    magnitudes[0] = (float)Math.abs(this.fftData[0]);      // DC    magnitudes[n / 2] = (float)Math.abs(this.fftData[1]);  // Nyquist    for (int k = 1; k < n / 2; k++) {        int i = k * 2;        magnitudes[k] = (float)Math.hypot(this.fftData[i],this.fftData[i + 1]);    }    return magnitudes;}
最佳答案某些FFT实现(例如FFTW)未规范其结果.因此,如果您有一个数组x,请将其转换为傅立叶空间x’,然后返回,则不会得到原始结果.对于FFTW,您必须确定阵列的长度.这是一个长期的尝试,但是您的问题听起来很熟悉. 总结

以上是内存溢出为你收集整理的Android Visualizer FFT数据取决于音量 全部内容,希望文章能够帮你解决Android Visualizer FFT数据取决于音量 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1145023.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存