IOS代码修改音量实例详解
2019/7/9 22:55:39
本文主要是介绍IOS代码修改音量实例详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
IOS代码修改音量实例详解
最近在做一个项目,需要用户在打开APP后,自动将音量调节到某个值,于是研究了一下。
之前做过iOS上声音的研究,苹果对iPhone设备的输入/输出的控制很严格,因为苹果要控制用户体验的一致性。比如:用户将耳机拔下来的时候,苹果认为,用户这时候不希望其他人知道自己在听什么,于是这时候声音会被自动暂停。在音量调整上,苹果也采取了类似的策略。苹果认为,用户不需要APP来为他指定音量,因为这样有时候用户会感到不舒服。苹果的开发文档是这么说的:
You cannot change device volume programatically,however MPVolumeView (volume slider) is there to change device volume but only through user interaction.
苹果提供了一个让用户手动修改音量的方法:MPVolumeView。用户通过拖动slider bar修改音量,就是下面这玩意儿:
虽然苹果将几乎所有的代码实现控制音量的方法都堵死了,但通过一些私有的方法还是可以修改的。比如,我们遍历一下MPVolumeView的subViews,从中得到UISlider,然后修改slider的value。这种方法虽然可以修改,但访问了私有的类,有被App Store拒绝的风险。而且不知道什么时候苹果修改MPVolumeView的结构,这样的方法就不行了。
下面介绍一个可以修改音量的小trick,一个苹果想干掉而没法干掉的方法:
MPMusicPlayerController* musicController = [MPMusicPlayerController applicationMusicPlayer]; musicController.volume = 0.2;
使用之前需要添加MediaPlayer.framework。
为什么说苹果想干掉而没法干掉呢?这个方法是在iOS3.0里添加的,当时估计还没有”不允许使用代码修改音量“这样的规范;后来在7.0的时候,这个方法被depress掉了,说明苹果是想干掉的。但是对于一个持续改进的系统来说,一般都要做向前兼容,否则就会出现像WP6-WP7-WP8这样的悲剧。所以苹果对于去掉一个方法是非常谨慎的,终于还是把这个方法留着了,在它强大的围墙里给开发都留下了一扇窗户。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
这篇关于IOS代码修改音量实例详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12Axios库资料:新手入门必读教程
- 2024-11-11Axios库项目实战:新手入门教程
- 2024-09-29Axios库教程:初学者必备指南
- 2024-08-29Axios库资料:新手入门指南与基本使用教程
- 2024-03-14system bios shadowed
- 2024-03-14gabios
- 2024-02-07iOS应用提交上架的最新流程
- 2024-02-06打包 iOS 的 IPA 文件
- 2023-12-07uniapp打包iOS应用并通过审核:代码混淆的终极解决方案 ?
- 2023-11-25uniapp IOS从打包到上架流程(详细简单) 原创