隐藏系统的音量控件
隐藏系统的音量控件的办法是,从iOS系统获取音量控件,然后让它不可见,代码如下:
import UIKit
import MediaPlayer
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let volumeView = MPVolumeView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
volumeView.isHidden = false
volumeView.alpha = 0.01
view.addSubview(volumeView)
}
}
这个代码只能在设备上测试,不能再模拟器测试。
获取音量的值
从iOS 9.0开始,获取音量的值很简单:
AVAudioSession.sharedInstance().outputVolume
响应音量改变
我们可以使用名为AVSystemController_SystemVolumeDidChangeNotification的通知来响应音量的改变,代码如下:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
NotificationCenter.default.addObserver(self, selector: Selector(("volumeDidChange:")), name: NSNotification.Name(rawValue: "AVSystemController_SystemVolumeDidChangeNotification"), object: nil)
return true
}
func volumeDidChange(notification: NSNotification) {
let volume = notification.userInfo!["AVSystemController_AudioVolumeNotificationParameter"] as! Float
// 处理音量改变的业务
}
详情可以查看:PVolumeView