2012-06-26 14 views
5

Możliwe duplikaty:
Mute/Silence an iOS device programmatically?wyłączyć głośność urządzenia - iOS

muszę wyłączyć głośność urządzenia programowo. Czy ktoś wie w jaki sposób?

Do tej pory odkryłem, że może mogę użyć funkcji AudioSessionSetProperty() i użyć właściwości "kAudioSessionProperty_CurrentHardwareOutputVolume", , ale ta właściwość jest tylko do odczytu. Nie jestem pewien, czy to zadziała:

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

W App Store są już aplikacje, które to wykonują, np. AutoSilent:

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

Odpowiedz

3

Nie można tego zrobić z iOS. Jedynym sposobem wyłączenia urządzenia z iOS jest użycie przełącznika sprzętowego. Możesz detect it i odpowiednio wyciszyć aplikację, ale nie możesz wyciszyć całego urządzenia z aplikacji.

+0

Nie sądzę, że masz rację, ponieważ istnieją aplikacje w appstore, które to robi ... np. AutoSilent zobacz http://itunes.apple.com/nl/app/autosilent/id474777148?mt=8 – revolutionary

+0

Sądzę, że używają do tego prywatnego API, co nie jest dozwolone. W jaki sposób zaakceptowali te aplikacje? Nie wiem. Sądzę, że po prostu mają szczęście, ponieważ system składania aplikacji jest trochę lotto :-) – Adam

0

Zobacz na to pytanie: How to disable iOS System Sounds

i to pytanie: Mute/Silence an iOS device programmatically?

Mówią tam, że jest to możliwe, choć trzeba użyć prywatną ramy nazywane Celestial framework. należałoby użyć AVSystemController aby wyciszyć telefon tak:

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

Wykorzystanie prywatnych w ramach swojej aplikacji spowoduje to zostać odrzucone przez Apple, więc nie polecam go używać. Niektórzy uważają, że używanie prywatnych frameworków w Twojej aplikacji może być początkowo dozwolone przez firmę Apple (jeśli ją przegapią), ale wkrótce zostanie ona usunięta ze sklepu App Store, gdy zorientuje się, że korzystasz z prywatnej platformy.

Mam nadzieję, że to pomoże!

+0

Myślę, że musi to być sposób nieprywatny, ponieważ jedyne, co robią te aplikacje, np. AutoSilent i SilentAlert wyłączają głośność urządzenia ..... Nie wierzę, że Apple może tęsknić za tym, gdy taki jest cel tych aplikacji. – revolutionary

+1

Zaaprobowali fałszywą grę "Counter Strike" co najmniej dwa razy. Tak, myślę, że oni też mogliby to przegapić. – Adam

Powiązane problemy