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)
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 编者按:iOS 10人机界面设计指南中文版也来了!今天第二部分是交互部分,包括16个小节,从最新的3D Touch...
    sky_kYU阅读 1,066评论 0 5
  • 当你两鬓苍苍,我亦是红颜不再,我才确定咱们确实是走了一辈子,你当初并非只是眷恋我的容颜。而是,真的爱我。
    连筝阅读 236评论 0 1
  • 儒家+道教+佛教,三教简称释儒道。道家,以天为神,讲求清与静。儒家,春秋时起,孔子,讲求天道酬勤,修身。佛教,西汉...
    歪歪不歪歪阅读 440评论 0 0
  • 我们麻木越多 温暖就越少 我们期望越多 知足就越少 我们欲望越多 生活越累 我们忧思越多 抑郁也越多 然 我们付出...
    紫玉云潇阅读 341评论 0 1
  • 0娜娜子0阅读 125评论 0 0