2012-06-26 5 views
5

Возможные Дублировать:
Mute/Silence an iOS device programmatically?выключить громкость устройства - IOS

мне нужно выключить громкость устройства программно. Кто-нибудь знает дорогу?

До сих пор я обнаружил, что, возможно, я могу использовать функцию AudioSessionSetProperty() и использовать свойство «kAudioSessionProperty_CurrentHardwareOutputVolume», , но это свойство доступно только для чтения. Поэтому я не уверен, если это будет работать:

float value = 0.0f; 
AudioSessionSetProperty(kAudioSessionProperty_CurrentHardwareOutputVolume, sizeof(float), &value); 

Там уже приложений в App-Store, который делает это, например, AutoSilent:

http://itunes.apple.com/nl/app/autosilent/id474777148?mt=8

ответ

3

Вы не можете сделать это с прошивкой. Единственный способ отключить устройство iOS - это использовать аппаратный переключатель. Вы можете detect it и отключите приложение, но не можете отключить все устройство от своего приложения.

+0

Я не думаю, что вы правы, так как в AppStore есть приложения, которые делают это ... например. AutoSilent см. http://itunes.apple.com/nl/app/autosilent/id474777148?mt=8 – revolutionary

+0

Я предполагаю, что для этого используется некоторый частный API, что недопустимо. Как они получили эти приложения? Я не знаю. Я думаю, им просто повезло, так как система подачи заявок - это любопытное лото :-) – Adam

0

Смотрите этот вопрос: How to disable iOS System Sounds

И этот вопрос: Mute/Silence an iOS device programmatically?

Они там говорят, что это возможно, хотя вы должны использовать частные рамки называется Небесные рамки. Вы могли бы использовать AVSystemController, чтобы заставить замолчать телефон, как так:

[[AVSystemController sharedAVSystemController] setVolumeTo:0 forCategory:@"Ringtone"]; 

Использование частных структур в вашем приложении заставит его быть отвергнута яблоком, поэтому я не рекомендую использовать его. Некоторые полагают, что с помощью частных фреймворков в вашем приложении потенциально может быть разрешено Apple первоначально (если они ее пропустили), но вскоре она будет удалена из App Store, когда они поймут, что вы используете частную инфраструктуру.

Надеюсь, это поможет!

+0

Я думаю, что должен быть неличный способ сделать это, потому что единственное, что делают эти приложения, например, AutoSilent и SilentAlert, отключает громкость устройства ..... Я не верю, что Apple может пропустить это, когда это является самой целью этих приложений. – revolutionary

+1

Они одобрили фальшивую игру «Counter Strike» как минимум два раза. Так что да, я думаю, они тоже могли пропустить это. – Adam

Смежные вопросы