Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android无法初始化可视化工具引擎,错误:-4_Android - Fatal编程技术网

Android无法初始化可视化工具引擎,错误:-4

Android无法初始化可视化工具引擎,错误:-4,android,Android,我在以下方面有一个错误: public class VisualizerCapture extends Activity implements Visualizer.OnDataCaptureListener { private Visualizer mVisualizer = new Visualizer(0); // error is here!!! @Override public void onCreate(Bundle savedInstanceState){ super.onCr

我在以下方面有一个错误:

public class VisualizerCapture extends Activity implements Visualizer.OnDataCaptureListener {
private Visualizer mVisualizer = new Visualizer(0); // error is here!!!

@Override
public void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);

    setupVisualizer();
}
这是抛出的错误:

  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{bla bla}: java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4
我的舱单:

    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>    
    <uses-permission android:name="android.permission.INTERNET"/>         
为什么我会犯这个错误?好像我已经满足了所有的权限


请耐心点,我是开发中的新手。如何解决此问题?

阅读文档后:

public Visualizer (int audioSession)

Added in API level 9
Class constructor.

Parameters
audioSession    system wide unique audio session identifier. If audioSession is not 0, the visualizer will be attached to the MediaPlayer or AudioTrack in the same audio session. Otherwise, the Visualizer will apply to the output mix.
您确定要0吗

更新 进一步调查错误:

public static final int ERROR_BAD_VALUE

Added in API level 9
Operation failed due to bad parameter value.

Constant Value: -4 (0xfffffffc)

这就是您遇到的错误,很可能可视化工具的配置有问题,请仔细检查setupVisualizer方法中的内容。

您无法让可视化工具在所有平台上运行。它是Android中测试最少的对象之一,不应该在imho中发布。您绝对需要捕捉异常,无论您在何处触摸它

Visualizer很可能是您将要使用的最复杂和未记录的类之一。它具有DSP和FFT的奇异性,并结合了神秘的错误处理

在使用Visualizer时,您还应该始终实例化均衡器,以便绕过音量控制

永远不要在类的声明部分实例化对象依赖项。这使得捕获异常变得困难,同时也使得依赖项注入变得困难


您应该在类的构造函数或init方法中实例化对象,以便捕获异常并支持测试依赖项注入的模拟。

在清单文件中添加权限

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

如果添加,则检查

转到此应用程序的AppInfo;导航到权限;确保已授予此应用请求的所有权限


你能发布你的
setupVisualizer()吗方法代码?+1,这是一个非常好的问题。很明显,有证据表明之前的努力,也有代码!我需要获得完整的音频输出。私有void setupVisualizer(){astroVisualizer.setEnabled(Log.v(“ABS”,“setupVisualizer”+astroVisualizer.getEnabled());//Log astroVisualizer.setDataCaptureListener(this,250,false,true);astroVisualizer.setEnabled(true);}似乎很苛刻。自4月份以来有什么变化吗?我很想利用这个类,但如果现在支持正在进行,我不想加入。随着Android的持续分裂,情况更糟。一些设备/操作系统组合根本不允许访问音频频道(如Chromebook)。当考虑访问麦克风和DRM时,这一点也不奇怪。最好的选择是使用C/C++NDK直接通过linux/dev缓冲区访问流(visualizer和equalizer就是这样做的,但受java安全沙箱的约束)
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>