swift3.0代码更改iPhone的声音

想要调整iPhone的声音,必须通知这种方式调用系统的单例MPVolumeView调整它的子视图UISlider,这时会弹出音量的提示框(这是合理的,苹果不允许不给用户任何提示就更改了系统声音了)

  /// 改变系统声音为 90%
    public class func changeVolumeToMax() {
        let volumeBig = MPVolumeView()
        var slider: UISlider?
        for view: UIView in volumeBig.subviews {
        SLog(view.self.description)
            SLog(view.className())
            if view.className() == "MPVolumeSlider" {
                slider = view as? UISlider
                break
            }
        }
        let systemVolume = slider?.value ?? 0.5
        if systemVolume < 0.9 {
            slider?.setValue(0.9, animated: false)
            slider?.sendActions(for: .touchUpInside)
        }
    }

录音或者语音识别的时候更改声音模式为:AVAudioSessionCategoryPlayAndRecord

/// 设置声音变小 - 录音的时候需要小
    public class func volumeLittle() {
        let session = AVAudioSession.sharedInstance()
        if session.category != AVAudioSessionCategoryPlayAndRecord {
            try! session.setCategory(AVAudioSessionCategoryPlayAndRecord)
            try! session.setActive(true)
        }
    }

播放声音的时候更改声音模式为:AVAudioSessionCategoryPlayback,否则播放的声音很小

   /// 设置声音变大 - 播放声音的时候需要大
    public class func volumeBig() {
        let session = AVAudioSession.sharedInstance()
        if session.category != AVAudioSessionCategoryPlayback {
            try! session.setCategory(AVAudioSessionCategoryPlayback)
            try! session.setActive(true)
        }
    }

你可能感兴趣的:(swift3.0代码更改iPhone的声音)