我需要在IOS5应用程序下获得当前音量。该应用程序应该在电影院使用,所以我想通知用户他/她应该关闭音量,除非它已被拒绝。
答案 0 :(得分:1)
试试这个......
musicPlayer = [[MPMusicPlayerController iPodMusicPlayer];
currentVolume = musicPlayer.volume;
答案 1 :(得分:1)
你可以像这样获得音量
-(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
虽然apparently,但这在iOS 5中不起作用。This post也是相关的。