我目前正在尝试在我的应用中实现一个可视化工具,从输出组合中获取数据。
我目前用于初始化可视化工具的代码,直到错误行:
private Visualizer audioOutput = null;
public void link(){
AudioTrack visualizedTrack = null;
final int minBufferSize = AudioTrack.getMinBufferSize(Visualizer.getMaxCaptureRate(), AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT);
visualizedTrack = new AudioTrack(AudioManager.STREAM_MUSIC, Visualizer.getMaxCaptureRate(), AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, minBufferSize, AudioTrack.MODE_STREAM);
visualizedTrack.play();
audioOutput = new Visualizer(0);
我从最后一行得到的错误:
Caused by: java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -3
如果此信息有用,我在Nvidia Shield Tablet K1上运行此代码。我意识到Visualizer方法并不是记录最好的类,并且已知会在某些设备上造成麻烦。
我知道由于某种不好的参数值我得到的错误-3但是输入混合不是0是可接受的吗?
我的清单中有正确的权限RECORD_AUDIO和MODIFY_AUDIO_SETTINGS:
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></uses-permission>
我在这里缺少什么?我已经坚持了一段时间,并且非常感谢任何人的帮助。
答案 0 :(得分:0)
似乎存在一些框架问题,但无论哪种方式在使用这些权限推送构建后重新启动设备。它应该工作!