iOS的AVFoundation框架提供了基本的音视频播放工具,我们基本上可以靠其中提供的类完成绝大部分的音视频播放任务。但是在音频播放的输出音量的处理上,苹果的策略比较保守。尽管AVPlayer
和AVPAudiolayer
zhe这些类提供了音量调节功能,但这些音量控制属于App级别的控制。好处就是音量调节独立于系统音量,调节大小时不会影响系统音量。但有时候我们可能希望修改系统音量,以免在调节声音的时候,如果系统音量过小,App调节音量效果不明显。一般来说要调节系统音量会有以下方法:
请注意:修改系统音量无法在模拟器上看到效果,必须使用真机调试才能看到效果!
使用MPVolumeView
这个方法是苹果官方推荐的方法。MPVolumeView
是Media Player Framework中的一个UI组件,直接包含了对系统音量和Airplay设备的音频镜像路由的控制功能。其中包含一个MPVolumeSlider
的subview用来控制音量。这个MPVolumeSlider
是一个私有类,我们无法手动创建此类,但这个类是UISlider
的子类。MPVolumeView
的使用很简单,只需要将其加入到一个父视图中,给予父视图合适的大小,再创建MPVolumeView
示例,将其加入到父视图中即可,苹果官方的文档1中有示例代码可以参考。
这个方法的缺点如下:
- UI可定制的的程度低。
MPVolumeView
只提供了有限的几个方法