2011-09-25 14 views
11

Olası Çoğalt: i sessiz mod üzerinde olup olmadığını kontrol etmek kod aşağıda kullandık
Detect Silent mode in iOS5?Kontrol iPad sessiz modda ise

, çalışıyor iPhone'da beklendiği gibi ama iPad'de, hoparlörden bağımsız olarak döner.

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]; 
} 

Evrensel olarak çalışmak için nasıl değiştirileceği hakkında herhangi bir fikrin var mı?

Teşekkür

Dan.

cevap

0

XIB'nizde, ses seviyesinin ne olduğunu kontrol etmek için bir kaydırma çubuğu ekleyebilirsiniz, böylece temel olarak sessiz olup olmadığını ve ses düzeyini öğrenin. Bu sınıfın daha fazla anlaşılması için, http://blog.stormyprods.com/2008/09/proper-usage-of-mpvolumeview-class.html numaralı bağlantıyı tıklatın, ancak önce şunu deneyin:

Aşağıdaki kod, bir birim çubuğu gibi bir şey oluşturacaktır.

- (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]]; 
} 

ben nedense belli bir sınıf (bizim örneğimizde bir) kullanırsanız elma bir uygulama satmaya izin vermez ama, ben da çift ediyorum ben bu konuda çok emin değilim duydum Kullanmak için 'izinli' olduğunuzdan emin olun ve kontrol edin. Ama kod çalışmalı.

0

Bu SO o güzel cevaplar cevap:

Detect Silent mode in iOS5?

Ve Gabe'in cevap ilişkin, verdiği cevap aslında özel API kullanmak eğer Apple uygulamanızı reddedecektir.

İlgili konular