iOS: Change Device Volume

血红的双手。 提交于 2019-11-26 09:09:01

问题


Is there a way to change the volume of the device? I\'ve seen several apps do it.

I have a desktop version of the iOS app and the device will be able to be controlled to some extent over the network. One of the things I want to allow the user to do is change the device volume and then play a sound. This can help if you loose your iPhone in a crack in your couch again, but can\'t find it.

Is there any way that you can do this without Apple getting angry?


回答1:


Using iPodMusicPlayer would affect the actual iPod volume setting as well. If you want to avoid that, use this:

#import <MediaPlayer/MediaPlayer.h>
// ...
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
musicPlayer.volume = 1.0f; 

As the user holex correctly mentioned the property volume in MPMusicPlayerController is deprecated in iOS 7.




回答2:


You can use a little trick:

  MPMusicPlayerController* musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
  musicPlayer.volume = 1; // device volume will be changed to maximum value



回答3:


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

MPVolumeView is a control in toolbox, you need to add MediaPlayer.framework in your project then MPVolumeView will be displayed in toolbox in interface builder.

Edit 1: MPVolumeView uses the device volume which is also used for ringing volume. AVAudioPlayer is there if you want application level volume. In this case you can use volume property to set your application volume (not device volume) programatically. However, you can use UISlider control to get volume input from user and set to your AVAudioPlayer



来源:https://stackoverflow.com/questions/4859402/ios-change-device-volume

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!