2012-04-29 180 views
4

我試圖從我的應用程序中靜音設備的鈴聲,但由於某種原因使用AVSystemController就像在這個答案(How to disable iOS System Sounds)不會讓我沉默的設備一路下來..它下降到一個音量1巴,但不完全沉默。以編程方式使iOS設備靜音/靜音?

我知道它可以完成,可能會使用像AVSystemController這樣的私有API,並且我知道如果用戶希望從應用程序獲得這種功能,Apple仍然會批准該應用程序(因爲已經有2個應用程序,我發現了在應用程序商店,它不需要越獄或類似的東西以編程方式靜音設備)。

這些應用程序實際上做的更好 - 它們實際切換實際靜音,而不僅僅是將音量減小到零。

有沒有人知道這樣做的方式?

任何幫助將不勝感激!謝謝!

+0

聽起來很多,就好像你正在嘗試一些東西一樣,大多數用戶不會在未經他們同意的情況下被某個應用程序完成。我向史蒂夫祈禱,這是不可行的。 – Till 2012-04-29 10:14:56

+1

http://stackoverflow.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

回答

1

這對我有用,我有一個按鈕,可以在遊戲中打開和關閉聲音。當我想要聲音時,我將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

相關問題