4

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

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

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

有谁知道这是怎么做的?

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

4

1 回答 1

1

这对我有用,我有一个按钮可以在游戏中打开和关闭声音。当我想要声音时,我将浮动设置为 10,当我想要关闭声音时,我将浮动设置为 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));

对于斯威夫特:

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

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

于 2015-01-27T23:22:08.617 回答