我试图在我的应用程序中将设备的铃声静音,但出于某种原因,像在这个答案 ( 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/