iOS代碼修改音量

來源:互聯網
上載者:User

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的結構,這樣的方法就不行了。<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+z8LD5r3pydzSu7j2v8nS1NDeuMTS9MG/tcTQoXRyaWNro6zSu7j2xru5+8/ruMm19Lb4w7u3qLjJtfS1xLe9t6ijujwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">MPMusicPlayerController* musicController = [MPMusicPlayerController applicationMusicPlayer];musicController.volume = 0.2;

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

為什麼說蘋果想幹掉而沒法幹掉呢?這個方法是在iOS3.0裡添加的,當時估計還沒有”不允許使用代碼修改音量“這樣的規範;後來在7.0的時候,這個方法被depress掉了,說明蘋果是想幹掉的。但是對於一個持續改進的系統來說,一般都要做向前相容,否則就會出現像WP6-WP7-WP8這樣的悲劇。所以蘋果對於去掉一個方法是非常謹慎的,終於還是把這個方法留著了,在它強大的圍牆裡給開發都留下了一扇窗戶。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.