我正在使用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错误?我在另一个可视化应用程序中注意到了这种行为。
答案 0 :(得分:0)
此问题是由我的HTC设备上的Beats Audio引起的。关闭它,它不会发生。