iOS:更改设备音量
Posted
技术标签:
【中文标题】iOS:更改设备音量【英文标题】:iOS: Change Device Volume 【发布时间】:2011-02-01 05:53:09 【问题描述】:有没有办法改变设备的音量?我见过几个应用程序这样做。
我有一个桌面版本的 ios 应用程序,并且可以通过网络在一定程度上控制该设备。我想让用户做的一件事是改变设备音量,然后播放声音。如果您再次将 iPhone 丢在沙发的裂缝中,但找不到它,这会有所帮助。
有没有什么方法可以让 Apple 不生气?
【问题讨论】:
【参考方案1】:使用 iPodMusicPlayer 也会影响实际的 iPod 音量设置。如果你想避免这种情况,请使用:
#import <MediaPlayer/MediaPlayer.h>
// ...
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
musicPlayer.volume = 1.0f;
正如用户holex 正确提到MPMusicPlayerController
中的属性volume
是deprecated in iOS 7。
【讨论】:
记得在目标的链接阶段添加MediaPlayer.framework
,在源文件中添加#import <MediaPlayer/MediaPlayer.h>
。
这对我有帮助。非常感谢。
知道volume
属性在iOS7 中已弃用 可能很重要。 (更多信息:developer.apple.com/library/ios/documentation/MediaPlayer/…)【参考方案2】:
你可以使用一个小技巧:
MPMusicPlayerController* musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
musicPlayer.volume = 1; // device volume will be changed to maximum value
【讨论】:
在 IOS8+ 上使用 systemMusicPlayer 而不是 iPodMusicPlayer 从 iOS 7.0 开始不推荐使用volume
属性。你可以检查here。【参考方案3】:
您不能以编程方式更改设备音量,但是 MPVolumeView(音量滑块)可以更改设备音量,但只能通过用户交互。
MPVolumeView 是工具箱中的控件,您需要在项目中添加MediaPlayer.framework,然后MPVolumeView 将显示在界面生成器的工具箱中。
编辑 1: MPVolumeView 使用设备音量,该设备音量也用于振铃音量。如果您想要应用程序级别的音量,AVAudioPlayer 就在那里。在这种情况下,您可以使用 volume 属性以编程方式设置您的应用程序音量(而不是设备音量)。但是,您可以使用UISlider 控件从用户获取音量输入并设置为您的 AVAudioPlayer
【讨论】:
另请注意,它仅在 iOS 4.2 中可用,因此您必须在使用前包括版本/类可用性检查。 不,在其中添加了一个新属性以显示/隐藏它,新属性仅在 iOS 4.2 中可用,但是我在 iOS3.2 中使用它,这里我使用它(iOS 3.2 或稍后),itunes.apple.com/us/app/msiradio/id399408266?mt=8 嗯,这是一种挫折。我能否以不同于铃声或系统音量的音量播放声音?我已经看到不少应用程序这样做了。 我目前使用 AVAudioPlayer 音量属性,绑定到一个滑块值。完美运行。 @seeafish,在你 +1 之前我不确定 :)以上是关于iOS:更改设备音量的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 上的 flex 中更改 StageVideo 的音量