I want to completely reduce the volume in iPhone to 0. And also I want to know is there a way to programmatically turn iPhone to vibrating mode. I did some work and in that I'm not completely able to make volume to 0. I make volume to 1 when call [self setSystemVolumeLevelTo:0]. Help Me guys ...
- (void) setSystemVolumeLevelTo:(float)newVolumeLevel
{
Class avSystemControllerClass = NSClassFromString(@"AVSystemController");
id avSystemControllerInstance = [avSystemControllerClass performSelector:@selector(sharedAVSystemController)];
NSString *soundCategory = @"Ringtone";
NSInvocation *volumeInvocation = [NSInvocation invocationWithMethodSignature:[avSystemControllerClass instanceMethodSignatureForSelector:@selector(setVolumeTo:forCategory:)]];
[volumeInvocation setTarget:avSystemControllerInstance];
[volumeInvocation setSelector:@selector(setVolumeTo:forCategory:)];
[volumeInvocation setArgument:&newVolumeLevel atIndex:2];
[volumeInvocation setArgument:&soundCategory atIndex:3];
[volumeInvocation invoke];
}