2012-05-16 12 views
12

मैंने ऑडियो प्लेबैक के लिए ओपनएएल का उपयोग करने वाला ओपनजीएल 3 डी गेम बनाया है और ऑडियो डिवाइस खोने से पहले "होम" बटन दबाए जाने पर ऑडियो खोने की समस्या का अनुभव कर रहा है। मैंने ऑडियो सत्र में हस्तक्षेप करने वाले हैंडलर को हुक करने की कोशिश की, लेकिन मेरी कॉलबैक कभी नहीं बुला रही है। कोई फर्क नहीं पड़ता कि मैं अपने आवेदन को कम या अधिकतम करता हूं। मेरा "OpenalInterruptionListener" कभी भी बुलाया नहीं जा रहा है।ऑडियो बाधाओं को सही तरीके से कैसे संभालें?

मैं क्या गलत कर रहा हूं?

AudioSessionInitialize(NULL, NULL, OpenALInterriptionListener, this); 

void OpenALInterriptionListener(void * inClientData, UInt32 inInterruptionState) 
{ 
    OpenALDevice * device = (OpenALDevice *) inClientData; 

    if (inInterruptionState == kAudioSessionBeginInterruption) 
    { 
      alcSuspendContext(_context); 
      alcMakeContextCurrent(_context); 
      AudioSessionSetActive(false); 
    } 
    else if (inInterruptionState == kAudioSessionEndInterruption) 
    { 
      UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; 
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); 
      AudioSessionSetActive(true);  
      alcMakeContextCurrent(_context); 
      alcProcessContext(_context); 
    } 
} 

उत्तर

0

alcMakeContextCurrent में शून्य उपयोग करने का प्रयास()

void OpenALInterriptionListener(void *inClientData, UInt32 inInterruptionState) 
{ 
    OpenALDevice * device = (OpenALDevice *) inClientData; 
    OSStatus nResult; 

    if(inInterruptionState == kAudioSessionBeginInterruption) 
    { 
     alcMakeContextCurrent(NULL);  
    } 
    else if(inInterruptionState == kAudioSessionEndInterruption) 
    { 
     nResult = AudioSessionSetActive(true); 

     if(nResult) 
     { 
      // "Error setting audio session active" 
     } 

     alcMakeContextCurrent(device->GetContext()); 
    } 
} 
+0

[http://benbritten.com/2009/02/02/restarting-openal-after-plplication-interruption-on-the-iphone/](http://benbritten.com/2009/02/02/ पुन: प्रारंभ-OpenAL के बाद आवेदन-रुकावट-ऑन-द iphone /) – james82345

1

कृपया ध्यान दें वर्तमान में ऑडियो व्यवधान और आईओएस के साथ मुद्दों देखते हैं कि। बाधा अधिसूचनाएं ठीक हैं, लेकिन अंत में ऑडियो बाधा अधिसूचनाएं हमेशा काम नहीं करती हैं। इस पर ऐप्पल में एक बग है और उन्होंने जवाब नहीं दिया है।

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