Android Visualizer类抛出运行时异常

时间:2011-08-07 08:16:11

标签: android audio visualization

我在我的演示应用程序中使用AndroidFX Visualizer类来读取FFT,但是当我尝试创建该类的对象时,它会抛出运行时异常(java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1)。 Player类是我的播放控件的自定义类,并使用相同的Player类我已经实现了均衡器类,并且工作正常。我是否需要在清单文件中添加任何权限?

Player mediaPlayer = Player.GetInstance();
    mediaPlayer.LoadFile("song.mp3");
    mediaPlayer.Play();
    try{
    visual = new Visualizer(mediaPlayer.GetAudioSessionID()); // this line causing Exception 
    visual.setEnabled(true);
    visual.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
    }
    catch(Exception ex)
    {
        Log.e("Visual Ex", ex.getMessage());
    }

2 个答案:

答案 0 :(得分:27)

这是由于我的愚蠢错误,该功能需要<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>权限。感谢

答案 1 :(得分:5)

我知道这是一个非常晚的答案,但我也在努力解决这个问题,我想分享我的经验。

首先,正如上面提到的答案,权限

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

并且,如果使用音频源0(Visualizer(0); //system mix),

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

是必需的。将权限添加到我的应用程序并再次安装(新编译的)应用程序后,我的应用程序仍然崩溃。我发现,必须重新启动设备才能使用Visualizer而没有任何异常(无论出于何种原因)。因此,如果您开发应用并获得此异常,则在向应用添加权限后可能需要重新启动