दिलचस्प पोस्ट
कैनवास जावास्क्रिप्ट पर 10,000 ऑब्जेक्ट्स आकर्षित करें Windows 10 पर विंडोज़ एसडीके 7.1 को स्थापित नहीं किया जा सकता पायथन में हैशबल द्वारा क्या मतलब है? क्या मुझे नोडजेएस में निर्भरता इंजेक्शन की ज़रूरत है या किस तरह से निपटना है …? सीएसएस छपाई: पृष्ठ के बीच कट-इन-आधे डीआईवी से बचना? पायथन 3.6 में चर एनोटेशन क्या हैं? अन्य HTML के साथ <body> में <style> टैग का उपयोग करना हम किस प्रोग्राम को पता लगा सकते हैं कि कौन से आईओएस संस्करण डिवाइस चल रहा है? एक ViewPager से एक टुकड़ा पुनर्प्राप्त करें Python में एक मानक-लायब्रेरी मॉड्यूल कैसे उपयोग करें, जब एक ही नाम के साथ एक स्थानीय मॉड्यूल है? सोनी एक्सपीरिया डिवाइस पर एप्लिकेशन आइकन पर एक सूचना बैज / गिनती कैसे जुटाई जा सकती है? jQuery ट्रिगर जब DIV के 2 / 3s व्यूपोर्ट में हैं Sed (मैक ओएस एक्स) में लाइनफीड सम्मिलित करें अगर / अन्य बयानों के अंदर कार्य घोषणाएं हैं? गैर कैप्चरिंग समूह क्या है? प्रश्न चिह्न क्या एक बृहदान्त्र के बाद (? :) मतलब है?

AVAudioPlayer का उपयोग कर iPhone का अंगूठी / मौन / म्यूट स्विच का पता चल रहा है?

मैंने इन विधियों का पता लगाने के प्रयास में कोशिश की है कि अंगूठी / मौन स्विच सक्रिय है या नहीं:

कैसे प्रोग्राम करने के लिए iPhone म्यूट स्विच समझ?

एवीडियो सत्र श्रेणी दस्तावेज के रूप में काम नहीं कर रहा है

लेकिन मेरे iPhone 4 पर, "राज्य" मान हमेशा "स्पीकर" होता है (और CFStringGetLength (राज्य) द्वारा लौटा जाने वाला लम्बाई मूल्य हमेशा होता है 7)। क्या किसी ने इस विधि को सफलतापूर्वक इस्तेमाल किया है? यदि हां, तो किस तरह की डिवाइस और एसडीके संस्करण पर?

मैं इसे इसी तरह बुला रहा हूं:

- (BOOL)deviceIsSilenced { CFStringRef state; UInt32 propertySize = sizeof(CFStringRef); OSStatus audioStatus = AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state); if (audioStatus == kAudioSessionNoError) { NSLog(@"audio route: %@", state) // "Speaker" regardless of silent switch setting, but "Headphone" when my headphones are plugged in return (CFStringGetLength(state) <= 0); } return NO; } -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { AVAudioSession *audioSession = [AVAudioSession sharedInstance]; audioSession.delegate = self; [audioSession setCategory:AVAudioSessionCategoryAmbient error:nil]; [audioSession setActive:YES error:nil]; NSLog(@"muted? %i", [self deviceIsSilenced]); ... } 

मैं सोच रहा था कि फोन पर भौतिक स्विच होने पर हो सकता है कि कुछ अन्य (अधिक सटीक) kAudioSessionProperty ईवेंट निकाल दिया गया है … स्विचित क्या किसी के भी पास कोई सुझाव है?

वैसे, मैं AVAudioSessionCategoryAmbient श्रेणी का उपयोग कर रहा हूँ मेरे [AVAudioSession साझा इंस्तांस]।

अपडेट: मैंने विभिन्न ऑडियो श्रेणियों और कुछ अन्य ऑडियो सत्र गुणों का उपयोग करने का भी प्रयास किया है, स्विच पर म्यूटिंग / अनम्यूट करने पर कोई भी आग लगने नहीं लग सकता है। 🙁

1 जनवरी 2014 अद्यतन: यह एक हैक का एक सा है, और मेरे आईफोन 5 एस पर मल्टीटास्किंग w / यह एक दुर्घटना का सामना करना पड़ा, लेकिन नए स्वीकार किए गए उत्तर में जुड़े साउंडस्विच लाइब्रेरी आपको जाने का तरीका है अगर आप इसका पता लगाना चाहते हैं चुप स्विच यह आईओएस 7 में काम करता है

Solutions Collecting From Web of "AVAudioPlayer का उपयोग कर iPhone का अंगूठी / मौन / म्यूट स्विच का पता चल रहा है?"

मैं इस VSSilentSwitch पुस्तकालय के माध्यम से चला गया।
मेरे लिए काम नहीं किया था (जब आप वास्तव में ऑडियो का इस्तेमाल करते हैं तब काम नहीं करता)
मैं यह सोच रहा था कि उसने यह कैसे किया, और फिर महसूस किया कि ऑडियो समापन कॉल को जल्द ही बुलाया जा रहा है जैसे ध्वनि जब हम चुप होते हैं तब खेलना शुरू हो जाते हैं।
थोड़ा अधिक विशिष्ट होना:
AudioServicesPlaySystemSound सिस्टम सिस्टम का उपयोग कर AudioServicesPlaySystemSound जाने वाले सिस्टम ध्वनियों को जैसे ही शुरू किया जाता है, प्लेबैक पूरा हो जाएगा।
बेशक, यह केवल ऑडियो श्रेणियों पर काम करेगा जो मूक स्विच का सम्मान करते हैं (डिफ़ॉल्ट AVAudioSessionCategoryAmbient सम्मान करता है)।
तो यह चाल एक प्रणाली ध्वनि बनाना है, अधिमानतः मूक ध्वनि की है, और इसे प्लेबैक से लेकर पूरा समय तक खेलना जारी रखता है, जबकि AudioServicesAddSystemSoundCompletion प्लेबैक से लेकर ( AudioServicesAddSystemSoundCompletion का उपयोग कर पूरा करने की प्रक्रिया को स्थापित करने के लिए)
यदि पूर्णता को शीघ्र ही कहा जाता है ( कुछ थ्रेशोल्ड को अनुमति दें) – इसका मतलब है कि चुप स्विच चालू है।
इस चाल में कई चेतावनियां हैं, सबसे बड़ी बात यह है कि यह सभी ऑडियो श्रेणियों पर काम नहीं करेगा।
यदि आपका ऐप पृष्ठभूमि में ऑडियो चलाता है – पृष्ठभूमि में सुनिश्चित करें कि आप इस परीक्षा को रोकते हैं या पृष्ठभूमि में आपका ऐप हमेशा के लिए चला जाएगा (और सेब द्वारा भी अस्वीकार कर दिया जाएगा)।

वैसे मुझे डेवलपर फ़ोरम से किसी के लिए धन्यवाद का जवाब मिला, और आप लोग इसके समान नहीं हैं!

इस पर ऐप्पल से मुझे एक प्रतिक्रिया मिली है

उन्होंने कहा है कि वे हार्डवेयर म्यूट स्विच का पता लगाने के लिए एक विधि प्रदान नहीं करते हैं और ऐसा नहीं करते हैं।

🙁

आईएमओ निश्चित रूप से चुप स्विच का पता लगाने और यूजर को सूचित करने के लिए मूल्य है, अगर वे भूल गए हैं … मैंने लोगों को शिकायत की है कि उनके पास कोई आवाज नहीं है और चुप स्विच इसका कारण था! ओह अच्छा।

पुनश्च: यदि आप चाहें तो ऐप्पल इस सुविधा को जोड़ सकते हैं (और निश्चित रूप से आप करते हैं!) कृपया http://bugreport.apple.com/ पर "आईफोन एसडीके" के लिए एक नया "एन्हांसमेंट" बग रिपोर्ट दर्ज करें।

अपडेट: म्यूट स्विच की स्थिति की जांच करने के लिए अभी तक कोई आधिकारिक तरीका नहीं है, जबकि चालक / लाइब्रेरी है जिसे "ध्वनि स्वीच" कहा जाता है, जो चाल को करते हैं। लिंक के लिए नया स्वीकृत उत्तर देखें

"हालांकि, अगर कोई हमें दिखा सकता है कि इस ऑडिओ सत्र प्रॉपर्टी_आउडियोरोउट डिस्क्रिप्शन का उपयोग कैसे करना है, तो वह इनाम सही है।"

ठीक है, बस एनएसएलॉग () परिणाम और आपको मिलता है

 routes: { "RouteDetailedDescription_Inputs" = ( ); "RouteDetailedDescription_Outputs" = ( { "RouteDetailedDescription_PortType" = Speaker; } ); } 

दुर्भाग्यवश, मुझे एक iPad2 / OS 5.0 पर समान परिणाम मिलता है, दोनों मौन और अनम्यूट हैं। इसलिए यह कार्यात्मक रूप से kAudioSessionProperty_AudioRoute के बराबर प्रतीत होता है, वहाँ कोई खुशी नहीं है।

डेवलपर बोर्डों को देखकर पता चलता है कि यह एक बार बार सामना कर रही समस्या है, जिसमें सबसे अच्छे से अभिव्यक्त किया गया है

"मैंने इस मुद्दे को rdar: // 9781189 के साथ जुलाई में वापस रिपोर्ट किया और यह मुद्दा अब भी जीएम में मौजूद है।"

तो हाँ … यकीन है कि आप इस के साथ SOL 5.0 में हैं।

परिशिष्ट:

"लेकिन आप लॉगिंग कर रहे हैं उस CFDictionary के बारे में कैसे। मैं" RouteDetailedDescription_PortType "कुंजी कैसे प्राप्त कर सकता हूँ?"

टोल फ्री ब्रिजिंग आपका दोस्त है

  CFDictionaryRef asCFType = nil; UInt32 dataSize = sizeof(asCFType); AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription, &dataSize, &asCFType); NSDictionary *easyPeasy = (NSDictionary *)asCFType; NSDictionary *firstOutput = (NSDictionary *)[[easyPeasy valueForKey:@"RouteDetailedDescription_Outputs"] objectAtIndex:0]; NSString *portType = (NSString *)[firstOutput valueForKey:@"RouteDetailedDescription_PortType"]; NSLog(@"first output port type is: %@!", portType); 

पैदा करता है

पहला आउटपुट पोर्ट प्रकार है: स्पीकर!

कई सामान्य CFTypes को अधिक सुविधाजनक प्रकारों के लिए पुल किया जाता है।

http://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFDesignConcepts/Articles/tollFreeBridgedTypes.html

अब, इसमें थोड़ा सा अभ्यास होता है जो सही ढंग से अनुमान लगाता है कि जादू की जयंती क्या है, इसके बाद के संस्करण में किसी शब्दकोश के बाहर उपयोगी कुछ मिलेगा। इन पंक्तियों के साथ एक क्लास डंप सहायक आपको इसके साथ गति बढ़ाने में मदद करेगा:

  - (void)whatsInThis:(CFDictionaryRef)thingy { NSDictionary *dict = (NSDictionary *)thingy; for (NSString *key in dict.allKeys) { id value = [dict valueForKey:key]; NSLog(@"key: %@ value type %@", key, [value class]); if ([value isKindOfClass:[NSArray class]]) { NSArray *array = (NSArray *)value; for (id item in array) { NSLog(@" -- object type %@", [item class]); if ([item isKindOfClass:[NSDictionary class]]) [self whatsInThis:item]; } } } } 

जो हाथ पर हमारे शब्दकोश के लिए (स्पष्टता के लिए जोड़ना जोड़ना)

 key: RouteDetailedDescription_Inputs value type __NSCFArray key: RouteDetailedDescription_Outputs value type __NSCFArray -- object type __NSCFDictionary key: RouteDetailedDescription_PortType value type __NSCFString 

जो आपको यह सुनिश्चित करने के लिए बताता है कि आप मूल लॉग से क्या अनुमान लगा सकते थे, यह जानने के लिए कि एनएसएलॉग () के अंदर () और शब्दकोशों के भीतर एआरएक्स प्रदर्शित करता है ताकि सही डाटों को विशिष्ट रूप से अनुमान लगाया जा सके। लेकिन कुछ CFType संरचनाएं इसके बजाय पार्स करने के लिए कठिन हैं।

डिवाइस के अंदर ऑडियोसीशनगेटप्रोप्टेटी को अपनी कॉल के ऊपर इस लाइन को सम्मिलित करने का प्रयास करें I सिविल

ऑडियो सत्र प्रारंभ (नाल, शून्य, शून्य, शून्य);

तब तब खाली स्ट्रिंग लौटना शुरू कर देना चाहिए जब स्विच बंद हो जाता है (हालांकि हेडफोन और कुछ अन्य राज्य दिखाएंगे, यदि बीटी हेडसेट या गौण उदाहरण के लिए जुड़ा हुआ है)।

एफडब्ल्यूआईड्यू मुझे विश्वास नहीं होता है कि सार्वजनिक एपीआई में कुछ भी है जो कि वास्तविक स्विच को स्थानांतरित कर देगा।

मुझे लगता है कि आपको गलत धारणा है एक मार्ग है जहां यह चल रहा है आप मात्रा स्तर जानना चाहते हैं। kAudioSessionProperty_CurrentHardwareOutputVolume उपयोग करें

ठीक है, kAudioSessionProperty_AudioRoute + क्लिक का उपयोग करते हुए kAudioSessionProperty_AudioRoute बाद, मैंने यह पाया 🙁

 /*! @enum AudioSession audio categories states @abstract Deprecated AudioSession properties @constant kAudioSessionProperty_AudioRoute Deprecated in iOS 5.0; Use kAudioSessionProperty_AudioRouteDescription */ enum { kAudioSessionProperty_AudioRoute = 'rout', // CFStringRef (get only) }; 

पता चला है कि हमें kAudioSessionProperty_AudioRouteDescription का उपयोग kAudioSessionProperty_AudioRouteDescription , लेकिन यह आदमी एक CFDictionaryRef या कुछ और देता है, और मुझे यह बिल्कुल पता नहीं है कि इसके साथ कैसे निपटना है ….

मैंने इसे एक उत्तर दिया है, अगर कोई भी हमें नहीं दिखाता कि kAudioSessionProperty_AudioRouteDescription का उपयोग कैसे करें, जहां मैं अपना जवाब स्वीकार करने की कोशिश करूंगा …

हालांकि, अगर कोई हमें दिखा सकता है कि इस kAudioSessionProperty_AudioRouteDescription का उपयोग कैसे किया kAudioSessionProperty_AudioRouteDescription , तो यह kAudioSessionProperty_AudioRouteDescription सही है

संपादित करें:

जाहिर है, यह एक आईओएस 5 समस्या है मैंने यह पहले नहीं बताया क्योंकि यह बहुत स्पष्ट दिखता है, लेकिन फिर मैंने सोचा कि यह खोज इंजनों के लिए स्पष्ट नहीं होगा .. अगर आपको मिल जाए तो मेरा क्या मतलब है

इसलिए, आईओएस 5 संदर्भित बहिष्कृत मूल्य के कारण iPhone पर चुप / म्यूट स्विच के साथ काम नहीं कर रहा है।

इस पुस्तकालय को मिला http://www.verietassoftware.com/index.php?option=com_content&view=article&id=27&Itemid=115

एप्पल की अनुमति होगी सामान? यह ऑडियो और फोन सेटिंग्स के साथ कुछ काला जादू कर एक 500Kb पुस्तकालय है