2011-08-07 20 views
8

मैं अपने डेमो अनुप्रयोग में AndroidFX विजुअलाइज़र वर्ग का उपयोग कर रहा है FFT को पढ़ने के लिए, लेकिन जब मैं उस वर्ग अपने फेंक रनटाइम अपवाद (java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1) की वस्तु बनाने के लिए प्रयास करें। प्लेयर क्लास प्लेबैक नियंत्रण के लिए मेरी कस्टम क्लास है और उसी प्लेयर क्लास का उपयोग करके मैंने तुल्यकारक वर्ग लागू किया है और यह ठीक काम कर रहा है। क्या मुझे मैनिफेस्ट फ़ाइल में कोई अनुमति जोड़ने की ज़रूरत है?एंड्रॉयड विजुअलाइज़र वर्ग फेंक क्रम अपवाद

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 का उपयोग करना है तो उसी त्रुटि को फेंक दिया जाता है यदि आप '<उपयोग-अनुमति एंड्रॉइड: 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"/> 

की जरूरत है। मेरे ऐप में अनुमतियां जोड़ने और फिर से (नया संकलित) ऐप इंस्टॉल करने के बाद, मेरा ऐप अभी भी दुर्घटनाग्रस्त हो गया। मुझे पता चला कि डिवाइस को किसी भी अपवाद के बिना विजुअलाइजर का उपयोग करने के लिए पुनरारंभ करना होगा (किसी भी कारण से)। तो यदि आप किसी एप्लिकेशन को विकसित करने और इस अपवाद मिलता है, पुन: प्रारंभ करने एप्लिकेशन करने के लिए अनुमति जोड़ने के बाद आवश्यक हो सकता है।

+0

मैं एक उत्तर ढूंढ रहा हूं, और मेरे डिवाइस को पुनरारंभ करने से समस्या ठीक हो गई है! धन्यवाद @Fruchtzwerg –

+0

धन्यवाद @Fruchtzwerg –

संबंधित मुद्दे