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

Iphone 以编程方式使iOS设备静音/静音?,iphone,ios,ios5,mute,avsystemcontroller,Iphone,Ios,Ios5,Mute,Avsystemcontroller,我正试图在我的应用程序中使设备的铃声静音,但由于某些原因,使用类似于此答案()中的AVSystemController不会让我一直让设备静音。。它将音量降低到1巴,但并非完全静音 我知道这是可以做到的,可能需要像AVSystemController这样的私有API,而且我知道如果用户希望应用程序具有这种功能,苹果仍然会批准该应用程序(因为我在app Store中已经找到了两个应用程序,它们通过编程方式使设备静音,而不需要越狱或类似的事情) 这些应用程序实际上做得更好——它们实际上切换了实际的静音

我正试图在我的应用程序中使设备的铃声静音,但由于某些原因,使用类似于此答案()中的AVSystemController不会让我一直让设备静音。。它将音量降低到1巴,但并非完全静音

我知道这是可以做到的,可能需要像AVSystemController这样的私有API,而且我知道如果用户希望应用程序具有这种功能,苹果仍然会批准该应用程序(因为我在app Store中已经找到了两个应用程序,它们通过编程方式使设备静音,而不需要越狱或类似的事情)

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

有人知道这是怎么做的吗


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

这对我很有效,我有一个按钮可以在游戏中切换声音的开关。当我想要声音打开时,我将浮点设置为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));
对于Swift:

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

更新来源回答:

这听起来很像是你在尝试什么,大多数用户不喜欢在没有他们同意的情况下被应用程序完成。我向史蒂夫祈祷,这是不可行的。我试图做的是在你开会时自动让你的设备静音(请不要窃取这个想法)。用户会喜欢它的,请不要徒劳地使用史蒂夫的名字。嗯,@Roshit,你是说我需要提交一个公开API的请求?我不认为这是一个好主意,因为它确实为恶作剧打开了大门,但我相信苹果会批准我的应用程序,即使它使用私人API。。。有没有人有一个真正有用的答案?谢谢。如果您有任何解决方案,请在此处共享,以便对其他人也有所帮助。在iOS 8x中已弃用