Получить текущую громкость звука в IOS5 - PullRequest
2 голосов
/ 28 ноября 2011

Мне нужно получить текущую громкость звука под моим приложением IOS5. Предполагается, что приложение будет использоваться в кинотеатрах, поэтому я хочу уведомить пользователя о том, что он / она должен уменьшить громкость, если она еще не выключена.

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Вы можете получить объем, подобный этому

-(Float32)audioVolume
{
    Float32 state;
    UInt32 propertySize = sizeof(CFStringRef);
    OSStatus n = AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, &propertySize, &state);
    if( n )
    {
        // something didn't work...
    }
    return state;
}

Вы можете получить системные обновления тома, как это

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(volumeChanged:) 
                                             name:@"AVSystemController_SystemVolumeDidChangeNotification" 
                                           object:nil];

Вы можете работать, если телефон находится в беззвучном режиме, если при этом возвращается пустая строка (это приведет к сбою, если в симуляторе отсюда и время компиляции).

#ifndef TARGET_IPHONE_SIMULATOR
-(NSString*)audioRoute
{
    CFStringRef state;
    UInt32 propertySize = sizeof(CFStringRef);
    OSStatus n = AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
    if( n )
    {
        // something didn't work...
    }
    NSString *result = (NSString*)state;
    [result autorelease];
    return result;
} 
#endif

Хотя очевидно , это не будет работать в iOS 5. Этот пост также имеет отношение.

1 голос
/ 28 ноября 2011

попробуйте это ...

musicPlayer = [[MPMusicPlayerController iPodMusicPlayer];

currentVolume = musicPlayer.volume;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...