服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - IOS代码修改音量实例详解

IOS代码修改音量实例详解

2021-03-17 15:48lixing333 IOS

这篇文章主要介绍了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修改音量,就是下面这玩意儿:

IOS代码修改音量实例详解

虽然苹果将几乎所有的代码实现控制音量的方法都堵死了,但通过一些私有的方法还是可以修改的。比如,我们遍历一下mpvolumeview的subviews,从中得到uislider,然后修改slider的value。这种方法虽然可以修改,但访问了私有的类,有被app store拒绝的风险。而且不知道什么时候苹果修改mpvolumeview的结构,这样的方法就不行了。

下面介绍一个可以修改音量的小trick,一个苹果想干掉而没法干掉的方法:

?
1
2
mpmusicplayercontroller* musiccontroller = [mpmusicplayercontroller applicationmusicplayer];
musiccontroller.volume = 0.2;

使用之前需要添加mediaplayer.framework。

为什么说苹果想干掉而没法干掉呢?这个方法是在ios3.0里添加的,当时估计还没有”不允许使用代码修改音量“这样的规范;后来在7.0的时候,这个方法被depress掉了,说明苹果是想干掉的。但是对于一个持续改进的系统来说,一般都要做向前兼容,否则就会出现像wp6-wp7-wp8这样的悲剧。所以苹果对于去掉一个方法是非常谨慎的,终于还是把这个方法留着了,在它强大的围墙里给开发都留下了一扇窗户。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/lixing333/article/details/42462315

延伸 · 阅读

精彩推荐
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17