Ответ 1
В вашем XIB вы можете добавить слайдер, чтобы проверить, на каком уровне громкости, так что в основном вы можете определить, является ли он тихим, и знать уровень громкости. Для более полного понимания этого класса, здесь ссылка 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]];
}
Я слышал, что по какой-то причине яблоко не позволяет вам продавать приложение, если вы используете определенный класс (тот, что в моем примере), но я не слишком уверен в этом, я бы дважды проверял и убедился что вам разрешено использовать его. Но код должен работать.