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 &lt;MediaPlayer/MediaPlayer.h&gt; 这对我有帮助。非常感谢。 知道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 设备音量?

如何在iOS上获得音量级别和音量更改通知?

根据设备音量ios控制滑块[关闭]

在 iOS 上的 flex 中更改 StageVideo 的音量

如何在不更改声音指示器的情况下在 iOS 中以最大音量播放声音文件

更改设备音量