在之前的一篇文章 iOS — 使用AVFoundation的AVAudioPlayer来播放音频中,简单介绍了AVAudioPlayer的使用。其中通过AVAudioPlayer对象实例的volume属性可以调节该APP的音量大小。但不会影响到iOS系统音量。那如果要对系统音量进行调节呢?
MPVolumeView
MPVolumeView是MediaPlayer框架中的一个组件,包含了对系统音量和AirPlay设备的音频镜像路由的控制功能。MPVolumeView有三个subview,其中私有类(无法手动创建,也无法使用isKindOfClass方法)MPVolumeSlider用来控制音量大小,继承自UISlider。
另外还有UILabel和MPButton两个subview,暂时没有使用到。
将MPVolumeView对象实例当做一个subview,添加到父view中即可使用,但其UI可定制性很低。使用前要import MediaPlayer。
if (mpVolumeView == nil) {
volumeLabel = UILabel(frame: CGRectMake(0, 100, self.view.frame.width, 30))
volumeLabel.textAlignment = NSTextAlignment.Center
self.view.addSubview(volumeLabel)
mpVolumeView = MPVolumeView(frame: CGRectMake(20, 150, self.view.frame.width - 40, 30))
self