2011-08-07 158 views
8

我在我的演示應用程序中使用AndroidFX Visualizer類來讀取FFT,但是當我嘗試創建該類的對象時拋出運行時異常(java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1)。播放器類是我的自定義類的播放控制和使用相同的播放器類我已經實現了均衡器類,這工作正常。我需要在清單文件中添加任何權限嗎?Android Visualizer類拋出運行時異常

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()); 
    } 
+0

必須看到http://stackoverflow.com/a/28427213/3496570 – Nepster

回答

27

那是因爲我的愚蠢的錯誤,該功能需要<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>許可。謝謝

+6

另外,如果使用音頻源0,如果您不設置'<使用權限android:name =「android.permission會引發同樣的錯誤.MODIFY_AUDIO_SETTINGS「/>'作爲[記錄](http://developer.android.com/reference/android/media/audiofx/Visualizer.html)。 – jwadsack

+0

這幫了我很多!謝謝!!! – Foggzie

+0

堆棧跟蹤應該有狀態 –

4

我知道這是一個非常晚的答案,但我也努力解決這個問題,我想分享我的經驗。

首先,如上述的答案提到的,權限

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

,並且如果音頻源0被使用(Visualizer(0); //system mix

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

是必要的。將權限添加到我的應用程序並再次安裝(新編譯的)應用程序後,我的應用程序仍然崩潰。我發現設備必須重新啓動,無需任何例外就可以使用Visualizer(無論出於何種原因)。所以如果你開發一個應用程序並得到這個異常,在嚮應用程序添加權限之後可能需要重新啓動。

+0

我一直在尋找答案,並重新啓動我的設備解決了問題!謝謝@Fruchtzwerg –

+0

謝謝@Fruchtzwerg –