博客> 监听Iphone系统音量
监听Iphone系统音量
1小时前 评论:0 阅读:283 lvhahaha
Iphone系统音量

在做语音聊天或者直播软件的时候,使用自定义的语音推流或者使用第三方SDK,监听设备的系统音量,从而调节软件合适的音量输出。

对于iOS7之前的设备已经不再多说,主要是之后的系统。

首先在AppDelegate,- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 里边 加上自己的监听

//监听系统声音

AVAudioSession *session = [AVAudioSession sharedInstance];

[session setCategory:AVAudioSessionCategoryAmbient error:nil];//重点方法

[session setActive:YES error:nil];

NSError *error;

[[AVAudioSession sharedInstance] setActive:YES error:&error];

//注,ios9上不加这一句会无效
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

然后在需要进行监听的地方使用通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:@"AVSystemController_SystemVolumeDidChangeNotification" object:nil];

- (void)volumeChanged:(NSNotification *)notification {

NSString * style = [notification.userInfo objectForKey:@"AVSystemController_AudioCategoryNotificationParameter"];
float volume = [[[notification userInfo] objectForKey:@"AVSystemController_AudioVolumeNotificationParameter"] floatValue];
if ([style isEqualToString:@"Ringtone"]) {
    //    铃声改变 不处理
}else if ([style isEqualToString:@"PhoneCall"]){
NSLog(@"音量改变当前值:%f",volume); // 0.0625
}
else if ([style isEqualToString:@"Audio/Video"]) {
}  }

不同的iphone,由于硬件的不同,volume值会有所不同,所以要按不同的设备进行处理合适的音量。

收藏
2
sina weixin mail 回到顶部