Android Visualizer类抛出运行时异常

Raj*_*ahu 8 audio android 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());
    }
Run Code Online (Sandbox Code Playgroud)

Raj*_*ahu 27

那是因为我的愚蠢错误,该功能需要<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>许可.谢谢

  • 此外,如果你没有将`<uses-permission android:name ="android.permission.MODIFY_AUDIO_SETTINGS"/>`设置为[文件记录](http://developer.android),如果使用音频源0,则会抛出相同的错误. COM /参考/安卓/媒体/ audiofx/Visualizer.html). (7认同)

Fru*_*erg 5

我知道这是一个很晚的答案,但我也为这个问题而苦苦挣扎,我想分享自己的经验。

首先,作为上述答案,权限

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
Run Code Online (Sandbox Code Playgroud)

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

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Run Code Online (Sandbox Code Playgroud)

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