iphone - 以编程方式使 iOS 设备静音/静音?

标签 iphone ios ios5 mute avsystemcontroller

我试图在我的应用程序中将设备的铃声静音,但出于某种原因,像在这个答案 ( How to disable iOS System Sounds ) 中那样使用 AVSystemController 不会让我一直将设备静音。它会把它放到1 小节的音量,但并非完全静音。

我知道这是可以做到的,可能使用像 AVSystemController 这样的私有(private) API,而且我知道如果用户希望应用程序具有这种功能,Apple 仍会批准该应用程序(因为我已经找到了 2 个应用程序在 App Store 中以编程方式使设备静音,无需越狱或类似操作)。

这些应用实际上做得更好 - 它们实际上切换实际的静音,而不仅仅是将音量降低到零。

有谁知道这是怎么做到的?

任何帮助将不胜感激!谢谢!

最佳答案

这对我有用,我有一个按钮可以在游戏中打开和关闭声音。当我想要打开声音时,我将 float 设置为 10,当我想要关闭声音时,我将 float 设置为 0。

float value = 0.0f;
AudioSessionSetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, sizeof(float), &value);

更新:

另一个仍然适用于 iOS 9.1 的选项

float vol = [[AVAudioSession sharedInstance] outputVolume];
NSLog(@"output volume: %1.2f dB", 20.f*log10f(vol+FLT_MIN));

对于 swift :

let volume = AVAudioSession.sharedInstance().outputVolume   
print("Output volume: \(volume)")

更新来源答案:Get System Volume iOS

关于iphone - 以编程方式使 iOS 设备静音/静音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371312/

相关文章:

ios - 如何响应 UIScrollView 中的 touchupinside 事件?

ios - 如何取消UIView动画跳到最后?

ios - 在 alertview 文本字段中快速获取 nil 值

iphone - iOS 5 SDK 以不同方式对待 UIView

ios - 钛合金中不调用手势(方向)事件

jquery - iOS 的 CSS 下拉菜单在单击和/或悬停时打开

ios - 支持 Retina 4 英寸,部署目标为 4.3

ios - 具有两个 View 的 iOS 4.2 中的 UISplitView

ios - 为什么我的刷新控件保留了我的 UIViewController?

iPhone-UIToolbar自动定位