2011-02-03 7 views
5

से लॉन्च एंड्रॉइड एसडीके एमुलेटर से कोई भी ऑडियो नहीं सुन सकता है, मैं एंड्रॉइड के लिए विकसित करना शुरू कर रहा हूं, और मैं एंड्रॉइड प्लगइन और एंड्रॉइड एसडीके के साथ ग्रहण का उपयोग कर रहा हूं।ग्रहण

कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, मैं एमुलेटर को कोई आवाज नहीं ले सकता।

मैंने वर्चुअल डिवाइस सेटअप में ऑडियो चालू करने का प्रयास किया है।

  • -audio oss ==== यह एक त्रुटि संदेश नहीं ओएसएस बैकएंड परिभाषित है कि वहाँ हो जाता है:

    मैं भी इस तरह के रूप रन विन्यास में विभिन्न कमांड लाइनों कोशिश की है।

  • -useaudio === के रूप में नहीं एक मान्य विकल्प
  • -audion -winaudio === डब्ल्यू/त्रुटि ओ, लेकिन अभी भी कोई आवाज

अगर मैं अपने लैपटॉप पर मेरी windows7 ऑडियो नियंत्रक खोलते हैं, तो मुझे लगता है कि देखने के लिए शुरू होता है ऊपर आता है एंड्रॉइड वर्चुअल मशीन को अपना वॉल्यूम स्लाइडर मिलता है, लेकिन जब मैं हिलता हूं या उस ऑडियो स्लाइडर पर क्लिक करता हूं तो कुछ भी नहीं लगता है। (अन्य वॉल्यूम स्लाइडर सामान्य बीप ध्वनि उत्पन्न करते हैं।)

मैं घंटों के लिए "एंड्रॉइड एमुलेटर नो ध्वनि" खोज रहा हूं लेकिन कोई भाग्य नहीं है।

कोई विचार?

उत्तर

2

मुद्दा यह नहीं था कि एम्यूलेटर ध्वनि नहीं बना रहा (जैसा कि यह सत्यापित किया गया है कि यह मेरे डिवाइस पर भी काम नहीं करेगा), लेकिन SoundPool क्लास के साथ एक अनजान समस्या है।

मैंने लॉगकैट में देखा और "नमूना 1 तैयार नहीं" जैसे संदर्भ पाए। इस पर शोध करने के बाद मुझे अंततः एक अस्पष्ट धागा मिला जिसमें यह उल्लेख किया गया था कि ध्वनि पूल का उपयोग करने के लिए तैयार होने में कुछ समय लगता है (और इसलिए सभी आवाज़ों का उपयोग करने से पहले उन्हें अच्छी तरह से लोड किया जाना चाहिए)।

मैंने soundPool.play (...) विधि कॉल के वापसी मूल्य की निगरानी करने के लिए मेरे प्लेसाउंड विधि को संशोधित किया। यह चलने वाली ध्वनि धारा की आईडी देता है, या 0 अगर यह विफल रहता है (यानी "नमूना 1 तैयार नहीं है")।

मैं क्या यह एक पाश में डाल दिया था, और जब soundPool.play (...) विधि कॉल के रिटर्न मान 0 था, मैं 1 मिलीसेकंड के लिए धागा नींद था, फिर कोशिश करें। इस विधि के साथ, अब मैं हमेशा ध्वनि प्राप्त करता हूं।

एक साइड नोट के रूप में मैं एंड्रॉइड 2.3.1 के बजाय एंड्रॉइड 2.2 के लिए अपने एसडीके सेट अप के साथ ट्यूटोरियल चला रहा हूं, क्योंकि एंड्रॉइड 2.2 मेरे डिवाइस पर एक स्प्रिंट एलजी ऑप्टिमस एस एलएस 670 स्थापित है।

मैंने एंड्रॉइड 2.2 और एंड्रॉइड 2.3.1 वर्चुअल डिवाइस दोनों पर अपना संशोधित कोड चलाया है।

जब मैं पुराने एंड्रॉइड 2.2 वीडी पर कोड चलाता हूं, तो सॉन्स्पूल ध्वनि चलाने के लिए तैयार होने से पहले इसमें आमतौर पर लगभग 10 से 15 लूप (इसलिए 10 से 15 एमएस देरी) होती है।

जब मैं एंड्रॉइड 2.3.1 वीडी पर एक ही कोड चलाता था, तो देरी बहुत खराब थी, 350 एमएस देरी से पहले खेलने से पहले - हाँ लगभग 35 गुना धीमा!

जब मैं एंड्रॉइड 2.2 चलाने वाले मेरे डिवाइस पर लगाए गए एक ही कोड को चलाता था, तो टाइम डेलप एमुलेटर पर चलने के समान था।

+0

आपने इसे कैसे काम किया? साउंडपूल क्या है? मेरा कार्यक्रम इस वर्ग का उपयोग नहीं करता है लेकिन मुझे अभी भी वही समस्या है, यानी, एमुलेटर कोई आवाज नहीं खेल रहा है। कृपया मेरा प्रयास यहां देखें: http://stackoverflow.com/questions/18143032/can-the-android-emulator-play-audio – user13267

+0

क्या कोई नमूना कोड काम करता है? जो मैं सिर्फ ग्रहण में पेस्ट कर सकता हूं और एमुलेटर के माध्यम से ध्वनि चलाने के लिए चला सकता हूं? कुछ और करने से पहले मैं यह सुनिश्चित करना चाहता हूं कि एमुलेटर किसी भी ध्वनि को चला सकता है, और मुझे यह सुनिश्चित करने की ज़रूरत है कि अगर मुझे असली एंड्रॉइड डिवाइस मिल जाए तो मैं ध्वनि प्राप्त कर पाऊंगा – user13267