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

问题描述:

我试图从我的应用程序中静音设备的铃声,但由于某种原因使用AVSystemController就像在这个答案(How to disable iOS System Sounds)不会让我沉默的设备一路下来..它下降到一个音量1巴,但不完全沉默。以编程方式使iOS设备静音/静音?

我知道它可以完成,可能会使用像AVSystemController这样的私有API,并且我知道如果用户希望从应用程序获得这种功能,Apple仍然会批准该应用程序(因为已经有2个应用程序,我发现了在应用程序商店,它不需要越狱或类似的东西以编程方式静音设备)。

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

有没有人知道这样做的方式?

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

+0

听起来很多,就好像你正在尝试一些东西一样,大多数用户不会在未经他们同意的情况下被某个应用程序完成。我向史蒂夫祈祷,这是不可行的。 – Till 2012-04-29 10:14:56

+1

http://*.com/questions/7828958/can-an-ios-app-switch-the-device-to-silent-mode – Roshit 2012-04-29 10:19:09

+1

我想要做的是当你进入时自动静音你的设备一个会议(PLZ不要窃取这个想法)。用户会喜欢它,请不要徒劳地使用Steve的名字。 – 2012-04-29 10:20:32

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

工作对于斯威夫特:

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

源更新回答:Get System Volume iOS

+0

在iOS 8x中已弃用 – 2016-08-02 12:03:54

+1

outputVolume是只读属性,无法更改。 – 2016-10-25 14:50:32