将Visualizer与AudioTrack关联可以改变音频

时间:2014-01-26 18:15:54

标签: android audiotrack visualizer

我正在使用Visualizer类为AudioTrack创建可视化。问题是将Visualizer与AudioTrack关联修改音频输出,它听起来“更亮”和更响亮,几乎就像Visualizer字节被添加到轨道播放一样。

当可视化器设置为setEnabled(false)或release()时,音频恢复正常。将音频会话ID设置为“0”(输出混合)不会导致此问题,但是我的应用程序无法接受此解决方案。

如何在不修改音频输出的情况下将AudioTrack与Visualizer相关联?

以下是附加代码:

public void link(int audioSessionId)
    {

        mVisualizer = new Visualizer(audioSessionId);
        mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);

        // Pass through Visualizer data to VisualizerView
        Visualizer.OnDataCaptureListener captureListener = new Visualizer.OnDataCaptureListener()
        {
            @Override
            public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes,
                    int samplingRate)
            {
                updateVisualizer(bytes);
            }

            @Override
            public void onFftDataCapture(Visualizer visualizer, byte[] bytes,
                    int samplingRate)
            {
                updateVisualizerFFT(bytes);
            }
        };

        mVisualizer.setDataCaptureListener(captureListener,
                Visualizer.getMaxCaptureRate(), true, true);

        // Enabled Visualizer and disable when we're done with the stream
        mVisualizer.setEnabled(true);
    }

所有updateVisualizer()方法都会使视图无效()并重绘它。那里没有可能的修改。

可能的Android错误?我在另一个可视化应用程序中注意到了这种行为。

1 个答案:

答案 0 :(得分:0)

此问题是由我的HTC设备上的Beats Audio引起的。关闭它,它不会发生。