iOS 調節系統音量

weixin_34138377發表於2016-06-24

控制系統音量總得來說有如下兩種方法

  • 第一種方法是蘋果在7.0以後建議用的,不過通過第一種方法,調節系統音量會彈出系統音量提示框和系統音量滑動條,但是有些需求是不需要顯示這些的,我們可以通過如下方法,設定frame和showsRouteButton屬性,兩者缺一不可。
  • 如果想單純的控制音量,則不推薦使用第二種方法。
//這個預設值是YES,為了突出我又刻意設定了一遍,設為NO之後,系統音量條是隱藏了,可是會彈出音量提示框
 _volumeView.showsVolumeSlider = YES;
//通過設定frame來達到隱藏音量滑動條
[_volumeView setFrame:CGRectMake(-1000, -1000, 10, 10)];
//去掉提示框
_volumeView.showsRouteButton = NO;
  1. 通過MPVolumeView來控制系統音量的方法
-(void)controlVolume{

    _volumeView = [[MPVolumeView alloc]init];

    _volumeView.showsRouteButton = NO;
    //預設YES,這裡為了突出,故意設定一遍
    _volumeView.showsVolumeSlider = YES;

    [_volumeView sizeToFit];
    [_volumeView setFrame:CGRectMake(-1000, -1000, 10, 10)];

    [self addSubview:_volumeView];
    [_volumeView userActivity];

    for (UIView *view in [_volumeView subviews]){
        if ([[view.class description] isEqualToString:@"MPVolumeSlider"]){
            _volumeSlider = (UISlider*)view;
            break;
        }
    }
    //設定預設開啟視訊時聲音為0.3,如果不設定的話,獲取的當前聲音始終是0
    [_volumeSlider setValue:0.2];
    
    //獲取最是剛開啟時的音量值
    _volumeValue = _volumeSlider.value;
    
    //設定展示音量條的值
    _showVolueSlider.value = _volumeValue;
}
  1. 下面這種方法大家就不要試了,在7.0以後蘋果反對使用此方法,建議用MPVolumeView類。
MPMusicPlayerController *mpc = [MPMusicPlayerController applicationMusicPlayer];
//This property is deprecated -- use MPVolumeView for volume control instead.
//在7.0以後蘋果反對使用此方法,建議用MPVolumeView
mpc.volume = 0;  //0.0~1.0

相關文章