2013-10-04 6 views
14

जब मैं अपना आईओएस ऐप पृष्ठभूमि मोड में काम करता हूं तो मुझे आईओएस 7 AVSpeechSynthesizer काम नहीं मिल सकता है। मैंने ऐप के समर्थित पृष्ठभूमि मोड की कुंजी "ऐप ऑडियो" को जोड़ा है, लेकिन मैं अभी भी इसे काम नहीं कर सकता।पृष्ठभूमि मोड में AVSpeechSynthesizer

मैंने को AVSpeechSynthesizer उच्चारण के साथ बनाने की संभावना की भी जांच की है, और उसके बाद किसी भी तरह से उस खिलाड़ी के साथ खेलें जो पृष्ठभूमि में चलाने में सक्षम होगा - लेकिन बिना किसी किस्मत के।

क्या पृष्ठभूमि में AVSpeechSynthesizer का उपयोग करने से किसी के पास मुझसे बेहतर भाग्य है?

उत्तर

32
  1. आपको पृष्ठभूमि मोड में "ऑडियो और एयरप्ले" सेट करना होगा।
  2. आप ऑडियो सत्र को कॉन्फिगर करना:
NSError *error = NULL; 
    AVAudioSession *session = [AVAudioSession sharedInstance]; 
    [session setCategory:AVAudioSessionCategoryPlayback error:&error]; 
    if(error) { 
     // Do some error handling 
    } 
    [session setActive:YES error:&error]; 
    if (error) { 
     // Do some error handling 
    } 
+2

बहुत बढ़िया उपलब्ध है! चीयर्स imihaly! –

+0

क्या यह वास्तव में आपको ऑडियो पृष्ठभूमि मोड में खेलने की अनुमति देता है? –

+1

@ChrisTruman, मैं पुष्टि कर सकता हूं कि यह काम करता है। imihaly, क्या "सत्र सेट एक्टिव" कॉल आपके ऐप को पृष्ठभूमि में चलने और आपके ऐप की पावर आवश्यकताएं बढ़ाने का कारण बनता है? मैं कुछ परीक्षण करूँगा, लेकिन मेरा अनुमान है कि उत्तर हाँ है, इसलिए आप उपरोक्त कॉल करना चाहते हैं, अपने संश्लेषित भाषण को खेलना चाहते हैं, और उसके बाद अपने सत्र की सक्रिय स्थिति को एक बार पूरा करने के बाद सेट कर सकते हैं। –

6

तेज 3 के लिए, आयात AVKit (या AVFoundation) तो viewWillAppear को

try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 

जोड़ने()। यह ऑडियो को म्यूट स्विच स्थिति और स्क्रीन के साथ पृष्ठभूमि में ध्यान दिए बिना खेलने की अनुमति देता है।

* संपादित करें: AVAudioSession AVFoundation में परिभाषित किया गया है और यह भी AVKit

साथ उपलब्ध है * संपादित करें 2: स्वत: पूर्ण दिखाने का स्क्रीनशॉट कि AVAudioSession AVKit

में enter image description here

+0

AVKit को AVFoundation के साथ प्रतिस्थापित करना है और पृष्ठभूमि मोड में "ऑडियो और एयरप्ले" सेट करना है, अभी भी – cristallo

+0

AVKit उच्च स्तर का ढांचा है, AVFoundation अधिक बढ़िया अनाज नियंत्रण के लिए उपयोग करने के लिए ढांचा है लेकिन [AVKit] (https: // डेवलपर .apple.com/दस्तावेज़ीकरण/avkit) किसी भी तरह से [AVFoundation] (https://developer.apple.com/documentation/avfoundation) द्वारा प्रतिस्थापित नहीं किया गया है। – Chris

+0

मैं यह नहीं कह रहा हूं कि AVFoundation एक AVKit प्रतिस्थापन है। मैं केवल इतना कह रहा हूं कि [AVAudioSession] (https://developer.apple.com/documentation/avfoundation/avaudiosession) AVKit में शामिल नहीं है लेकिन AVFoundation में। तो इस संदर्भ में आपको AVFoundation शामिल करना चाहिए। – cristallo

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