2013-09-23 13 views
13

चूंकि आईओएस 7 के अपडेट के बाद रिकॉर्डिंग अनुप्रयोगों में कुछ बदलाव हुए हैं। मेरे पास एक ऐप है जो आईओएस 5 और 6 के साथ काम करता था, लेकिन जब मैंने इसे आईओएस 7 पर चलाने की कोशिश की - रिकॉर्डिंग ने जवाब नहीं दिया।requestRecordPermission कुछ भी नहीं करता

मैंने इंटरनेट की जांच की और देखा कि एक नई विधि है जिसे कॉल करने की आवश्यकता है। मैं viewDidAppear में इस कोड को जगह करने की कोशिश की:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
    if([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) 
    { 
     [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { 
      NSLog(@"permission : %d", granted); 
     }]; 
    } 
} 

'दी' हमेशा 1 हालांकि मैं किसी भी अनुमति नहीं दी और न ही किसी भी अनुरोध पॉपअप देखा है।

बीटीडब्ल्यू मैं xcode 4.6.3 का उपयोग करके इसे संभालने की कोशिश कर रहा हूं। मैंने AVAudioSession के लिए अनुरोध RecordPermission विधि के साथ एक श्रेणी बनाई है, क्योंकि यह विधि केवल आईओएस 7 में उपलब्ध है।

धन्यवाद।

+0

मुझे लगता है कि योगेश महेश्वरी का जवाब अधिक सही है और इसे उत्तर के रूप में सेट किया जाना चाहिए। –

उत्तर

25

आईओएस 7 सिम्युलेटर पर परीक्षण करते समय मैं एक ही समस्या में भाग गया, यह अनुरोध की तरह दिखता है रिकार्डप्रमिशन सिम्युलेटर में काम नहीं करता है और "दी गई" हमेशा YES वापस आ जाता है। आपको इसे वास्तविक डिवाइस पर परीक्षण करना होगा।

यदि आपने डिवाइस पर एक बार परीक्षण किया है और अनुमति पॉपअप का जवाब दिया है तो अनुमति पॉपअप फिर से नहीं आएगा जब तक कि & गोपनीयता की स्थिति पूरी नहीं हो जाती।

स्थान & गोपनीयता इन चरणों का

Go to Settings -> General -> Reset -> Reset Location & Privacy and then press "Reset Warnings" when asked. 
10

एक बार जब आप एप्लिकेशन को ऑडियो अनुमति देते हैं। आपका ऐप फिर से अनुमति संकेत नहीं दिखाएगा।

यदि आप इसका परीक्षण करना चाहते हैं, तो अपने ऐप & प्रयास की बंडल आईडी बदलें।

2

iOS 8 सिम्युलेटर के लिए एक ही पालन रीसेट करने के लिए। AVAudioSession.sharedInstance().requestRecordPermission हमेशा true.On दूसरी ओर लौटता है जब आप

UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) 

फोन सिम्युलेटर पर अपने आवेदन की सेटिंग खोलने के लिए, माइक्रोफोन there.That कोई वास्तविक डिवाइस पर परीक्षण किया जा करने की आवश्यकता होगी सूचीबद्ध कभी नहीं किया गया है।

1

गोपनीयता जोड़ें - ऐप के लिए अनुमति मांगने के लिए ऐप के उपयोग के लिए माइक्रोफोन उपयोग विवरण। यह मुझे Thread13 कारण था: सिग्नल SIGABRT त्रुटि। ऐसा करने के बाद त्रुटि स्वचालित रूप से हल हो जाती है।

+0

बेहतर गुणवत्ता के उत्तर प्रदान करने के लिए, अपने सुझाव के लिए कोड दिखाने का प्रयास करें। – yivi

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