2014-06-26 3 views
5

विफल रहता है मेरे पास 2 वीओआईपी ऐप्स हैं जो मैं विकसित कर रहा हूं जिसे एक साथ काम करने की आवश्यकता है; एक सॉफ्टफोन ऐप (ऐप ए) है जो अपेक्षित रूप से विभिन्न ऑडियो मोड का उपयोग करता है यानी रिंगटोन, IN_COMMUNICATION, आदि। अन्य ऐप (ऐप बी) को ऑडियो मोड सामान्य की आवश्यकता होती है। मैं यह सुनिश्चित करने की कोशिश करता हूं कि वे एक दूसरे के साथ अच्छा खेलें ताकि जब सॉफ्टफोन ऐप ए कॉल पूरा करे, तो यह ऑडियो मोड को सामान्य में लौटाता है। इसी तरह, यदि ऐप बी को कुछ ऐप ए के बीच में काम करने की ज़रूरत है, तो यह ऑडियो मोड को सहेजता है और इसे पूरा होने पर पुनर्स्थापित करता है।Android AudioManager.setMode (MODE_NORMAL)

उदाहरण के लिए, एक इनबाउंड कॉल के लिए, अनुप्रयोग एक ऑडियो मोड इसलिए की तरह बदल सकता है:

  1. MODE_RINGTONE जब कॉल में
  2. MODE_IN_COMMUNICATION आता है जब कॉल जुड़ा हुआ है
  3. MODE_NORMAL के बाद कॉल
  4. समाप्त होता है

यदि कॉल कनेक्ट होने पर ऐप बी को कुछ करने की आवश्यकता है (ऊपर चरण 2) यह

होगा
  1. MODE_IN_COMMUNICATION
  2. बचाने
  3. सेट MODE_NORMAL
  4. यह करने की जरूरत है कि क्या करना
  5. MODE_IN_COMMUNICAITON

बहाल दोनों क्षुधा उनके आवेदन संदर्भ का उपयोग कर एंड्रॉयड AudioManager मिलता है।

मेरी समस्या है, और मुझे समझ में नहीं आ रहा है कि यह है कि एक बार ऐप बी उपरोक्त चरणों के माध्यम से जाता है, तो ऐप ए कॉल समाप्त होने के बाद ऑडियो मोड को सामान्य करने के प्रयास में विफल रहता है।

myAudioManagerReference.setMode(AudioManager.MODE_NORMAL); 
if (myAudioManagerReference.getMode() != AudioManager.MODE_NORMAL) 
    Log.w(CLASSTAG, "failure to set audio mode to MODE_NORMAL); 

क्या मेरे ऐप बी के लिए ऑडियोमैनेजर मोड पर कुछ प्रकार का लॉक होना संभव है? या ऐप ए के लिए अनुमतियों को बदलने के लिए कि यह मोड को वापस सामान्य में बदल नहीं सकता है? मैंने पाया है कि एक बार जब मैं ऐप बी से बाहर निकलता हूं, तो ऐप ए मोड को सामान्य रूप से सामान्य रूप से बदल सकता है।

उत्तर

2

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

दुर्भाग्यवश, मेरे पास अभी तक निर्माता (और ALSA ड्राइवर लेखक) से पुष्टि नहीं है कि यह मामला है।

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