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

ita*_*ter 5 iphone mute ios ios5 avsystemcontroller

我正在尝试从我的应用程序中静音设备的铃声,但出于某种原因,使用 AVSystemController 就像这个答案(如何禁用 iOS 系统声音)不会让我让设备一直静音..它会将其降低到音量为 1 bar,但并非完全静音。

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

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

有谁知道这是怎么做的?

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

MSU*_*dog 1

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

float value = 0.0f;
AudioSessionSetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, sizeof(float), &value);
Run Code Online (Sandbox Code Playgroud)

更新:

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

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

对于斯威夫特:

let volume = AVAudioSession.sharedInstance().outputVolume   
print("Output volume: \(volume)")
Run Code Online (Sandbox Code Playgroud)

更新答案来源:获取系统卷 iOS