2011-09-25 9 views
11

संभव डुप्लिकेट:
Detect Silent mode in iOS5?जांच करें कि आईपैड मौन मोड में हो

मैं अगर साइलेंट मोड पर है की जाँच करने के नीचे दिए गए कोड का इस्तेमाल किया है, यह काम करता है iPhone पर अपेक्षा के अनुरूप है, लेकिन आईपैड पर यह स्पीकर परवाह किए बिना देता है।

CFStringRef state; 
UInt32 propertySize = sizeof(CFStringRef); 
AudioSessionInitialize(NULL, NULL, NULL, NULL); 
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state); 

if (CFStringGetLength(state) == 0) { 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Silent mode" 
                message:@"Please turn sound on" 
                delegate:self cancelButtonTitle:@"Ok" 
              otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 

कोई भी विचार सार्वभौमिक रूप से काम करने के लिए इसे संशोधित करने के लिए कैसे?

धन्यवाद

दान।

उत्तर

0

अपने एक्सआईबी में आप वॉल्यूम स्तर क्या है, यह जांचने के लिए एक स्लाइडर जोड़ सकते हैं, इसलिए मूल रूप से आप यह बता सकते हैं कि यह चुप है, और वॉल्यूम के स्तर को जानें। इस वर्ग की अधिक समझ के लिए, यहां लिंक http://blog.stormyprods.com/2008/09/proper-usage-of-mpvolumeview-class.html है लेकिन इसे पहले आज़माएं:

निम्न कोड वॉल्यूम बार की तरह कुछ बना देगा।

- (void)viewDidLoad { 
     // create a frame for MPVolumeView image 
CGRect frame = volumeViewHolder.bounds; // CGRectMake(0, 5, 180, 0); 
volumeView = [[[MPVolumeView alloc] initWithFrame:frame] autorelease]; 
[volumeView sizeToFit]; 
[volumeViewHolder addSubview:volumeView]; 

for (UIView *view in [volumeView subviews]){ 
    if ([[[view class] description] isEqualToString:@"MPVolumeSlider"]) { 
    volumeViewSlider = view; 
    } 
} 
[[NSNotificationCenter defaultCenter] addObserver:self 
     selector:@selector(volumeChanged:) 
     name:@"AVSystemController_SystemVolumeDidChangeNotification" 
     object:nil]; 
} 
- (void) volumeChanged:(NSNotification *)notify 
{ 
[volumeViewSlider setValue:[[[notify userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue]]; 
} 

मैंने सुना है कि किसी कारण से सेब यदि आप एक निश्चित वर्ग (मेरे उदाहरण में से एक) का उपयोग यदि आप किसी एप्लिकेशन को बेचने की अनुमति नहीं है, लेकिन मैं इस बारे में भी यकीन है कि, मैं डबल होगा नहीं कर रहा हूँ जांचें और सुनिश्चित करें कि आप इसका उपयोग करने के लिए 'अनुमति' हैं। लेकिन कोड काम करना चाहिए।

0

यह इतना जवाब का जवाब यह अच्छी तरह:

Detect Silent mode in iOS5?

और Gabe है जवाब के बारे में, अगर उसके जवाब वास्तव में एक निजी एपीआई का उपयोग करता है, एप्पल अपने अनुप्रयोग को अस्वीकार कर देंगे।

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