iOS 播放器静音设置方法(介绍:整理的两种设置播放器播放静音的
一、MPVolumeView-设置音量值为0
1.获取到当前系统音量值(恢复音量时有用)
volumeFloat =[selfgetVolume];-(float) getVolume
{
//获取系统系统音量视图 MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame: CGRectMake(-1000, -100, 100, 100)];
volumeView.hidden =NO;//不显示系统音量调节视图[selfaddSubview:volumeView]; volumeViewSlider=nil;for(UIView *view in [volumeView subviews])
{
if([[[view class] description] isEqualToString:@"MPVolumeSlider"])
{
volumeViewSlider=(UISlider *)view;
break;
}
}
float val = [volumeViewSlider value];
return val;
}
2.关闭系统音量(设置音量值为0)
//关闭系统音量(静音)
-(void)closeSysVolume{
[volumeViewSlider setValue:0 animated:NO];
}
3.恢复原来的音量
-(void)reStartSysVolume
{
NSLog(@"重启音量");
if(volumeFloat ==0) {
volumeFloat =0.5; } [volumeViewSlider setValue:volumeFloat animated:NO];//注:设置恢复后不会影响系统音量图标的正常显示MPVolumeView*volumeView = [MPVolumeViewnew];
volumeView.hidden =YES;
}
二、AVAudioSession
1.静音
//关闭系统音量(静音)
-(void)closeSysVolume{
[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryRecorderror:nil];
}
2.重新开启音量(注:调用closeSysVolume后使用该方法无效--还没找到恢复音量方法)
-(void)reStartSysVolume{
NSLog(@"重启音量");[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryAmbienterror:nil];
}
三、补充
如果不想通过设置系统方式静音,可以更简单的使用播放器自带的音量属性实现静音(推荐这种方式,而不是使用修改系统方式)。例如ijkplayer的playbackVolume属性:
//关闭音量(静音)
-(void)closeSysVolume{
NSLog(@"静音模式");self.player.playbackVolume= 0;
}
//重启音量
-(void)reStartSysVolume{
NSLog(@"重启音量");self.player.playbackVolume= 1;
}
参考来源 https://my.oschina.net/u/4317554/blog/4234549