国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

IOS代碼修改音量實(shí)例詳解

2019-10-21 18:46:20
字體:
供稿:網(wǎng)友

IOS代碼修改音量實(shí)例詳解

最近在做一個(gè)項(xiàng)目,需要用戶在打開APP后,自動(dòng)將音量調(diào)節(jié)到某個(gè)值,于是研究了一下。

之前做過iOS上聲音的研究,蘋果對(duì)iPhone設(shè)備的輸入/輸出的控制很嚴(yán)格,因?yàn)樘O果要控制用戶體驗(yàn)的一致性。比如:用戶將耳機(jī)拔下來的時(shí)候,蘋果認(rèn)為,用戶這時(shí)候不希望其他人知道自己在聽什么,于是這時(shí)候聲音會(huì)被自動(dòng)暫停。在音量調(diào)整上,蘋果也采取了類似的策略。蘋果認(rèn)為,用戶不需要APP來為他指定音量,因?yàn)檫@樣有時(shí)候用戶會(huì)感到不舒服。蘋果的開發(fā)文檔是這么說的:

You cannot change device volume programatically,however MPVolumeView (volume slider) is there to change device volume but only through user interaction. 

蘋果提供了一個(gè)讓用戶手動(dòng)修改音量的方法:MPVolumeView。用戶通過拖動(dòng)slider bar修改音量,就是下面這玩意兒:

IOS代碼,修改音量,IOS修改音量

雖然蘋果將幾乎所有的代碼實(shí)現(xiàn)控制音量的方法都堵死了,但通過一些私有的方法還是可以修改的。比如,我們遍歷一下MPVolumeView的subViews,從中得到UISlider,然后修改slider的value。這種方法雖然可以修改,但訪問了私有的類,有被App Store拒絕的風(fēng)險(xiǎn)。而且不知道什么時(shí)候蘋果修改MPVolumeView的結(jié)構(gòu),這樣的方法就不行了。

下面介紹一個(gè)可以修改音量的小trick,一個(gè)蘋果想干掉而沒法干掉的方法:

MPMusicPlayerController* musicController = [MPMusicPlayerController applicationMusicPlayer]; musicController.volume = 0.2; 

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

為什么說蘋果想干掉而沒法干掉呢?這個(gè)方法是在iOS3.0里添加的,當(dāng)時(shí)估計(jì)還沒有”不允許使用代碼修改音量“這樣的規(guī)范;后來在7.0的時(shí)候,這個(gè)方法被depress掉了,說明蘋果是想干掉的。但是對(duì)于一個(gè)持續(xù)改進(jìn)的系統(tǒng)來說,一般都要做向前兼容,否則就會(huì)出現(xiàn)像WP6-WP7-WP8這樣的悲劇。所以蘋果對(duì)于去掉一個(gè)方法是非常謹(jǐn)慎的,終于還是把這個(gè)方法留著了,在它強(qiáng)大的圍墻里給開發(fā)都留下了一扇窗戶。

 感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰宁| 西丰县| 大冶市| 孝感市| 阳朔县| 涟源市| 纳雍县| 资阳市| 天长市| 茶陵县| 溧阳市| 龙川县| 简阳市| 谷城县| 马尔康县| 嘉义市| 西盟| 德钦县| 石阡县| 永丰县| 沽源县| 苍南县| 翼城县| 海口市| 朔州市| 扶绥县| 琼结县| 长宁县| 轮台县| 海宁市| 涿州市| 呼伦贝尔市| 随州市| 定安县| 大洼县| 新野县| 普格县| 平凉市| 正安县| 集安市| 东台市|