問題描述
我正在嘗試從我的應用程序中將設備的鈴聲靜音,但由于某種原因,使用 AVSystemController 就像在這個答案中一樣( 如何禁用 iOS 系統聲音 ) 不會讓我將設備完全靜音.. 它會將音量降至 1 bar,但并非完全靜音.p>
我知道它可以做到,可能使用像 AVSystemController 這樣的私有 API,并且我知道如果用戶期望應用程序具有這種功能,Apple 仍然會批準該應用程序(因為我已經找到了 2 個應用程序在 App Store 中,它以編程方式使設備靜音,無需越獄或類似的東西).
這些應用實際上做得更好——它們實際上切換了實際靜音,而不僅僅是將音量降低到零.
有人知道這是怎么做的嗎?
任何幫助將不勝感激!謝謝!
這對我有用,我有一個按鈕可以在游戲中打開和關閉聲音.當我想要聲音時,我將浮動設置為 10,當我想要關閉聲音時,我將浮動設置為 0.
浮點值 = 0.0f;AudioSessionSetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, sizeof(float), &value);
更新:
另一個仍然適用于 iOS 9.1 的選項
float vol = [[AVAudioSession sharedInstance] outputVolume];NSLog(@"輸出音量:%1.2f dB", 20.f*log10f(vol+FLT_MIN));
對于斯威夫特:
讓音量 = AVAudioSession.sharedInstance().outputVolumeprint("輸出音量:(volume)")
更新答案的來源:Get System Volume iOS
I'm trying to mute the device's ringer from within my app, but for some reason using AVSystemController like in this answer ( How to disable iOS System Sounds ) won't let me silence the device ALL the way down.. it drops it to a volume of 1 bar, but not completely silent.
I know it can be done, probably with a private API like AVSystemController, and I know that Apple will still approve the app if the user expects this kind of functionality from the app (since there are already 2 apps I found in the App Store which mutes the device programmatically with no need of jailbreaking or anything like that).
Those apps actually do something better - they actually toggle the actual mute, not just decreasing the volume to zero.
Does anyone know the way this is being done?
Any help will be greatly appreciated! Thanks!
This worked for me, I have a button that toggles sound on and off in a game. I set the float to 10 when I want sound on and 0 when I want sound off.
float value = 0.0f;
AudioSessionSetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, sizeof(float), &value);
Update:
Another option that is still working with iOS 9.1
float vol = [[AVAudioSession sharedInstance] outputVolume];
NSLog(@"output volume: %1.2f dB", 20.f*log10f(vol+FLT_MIN));
For Swift:
let volume = AVAudioSession.sharedInstance().outputVolume
print("Output volume: (volume)")
Sources for updates answer: Get System Volume iOS
這篇關于以編程方式使 iOS 設備靜音/靜音?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!