2011-02-01 15 views
23

Czy istnieje sposób zmiany głośności urządzenia? Widziałem już kilka aplikacji.iOS: Zmiana głośności urządzenia

Mam wersję aplikacji na iOS dla komputerów i urządzenie będzie w pewnym stopniu kontrolowane przez sieć. Jedną z rzeczy, które chcę zrobić, to zmienić głośność urządzenia, a następnie odtworzyć dźwięk. Może to pomóc, jeśli stracisz iPhone'a w pęknięcia na kanapie, ale nie możesz go znaleźć.

Czy jest jakiś sposób, aby to zrobić bez gniewu Apple?

Odpowiedz

32

Korzystanie iPodMusicPlayer wpłynęłoby rzeczywistą pojemność iPoda ustawień, jak również. Jeśli chcesz tego uniknąć, użyj tego:

#import <MediaPlayer/MediaPlayer.h> 
// ... 
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer]; 
musicPlayer.volume = 1.0f; 

Jako użytkownik holex poprawnie wspomniano właściwość volume w MPMusicPlayerController jest deprecated in iOS 7.

+1

Powyższe rozwiązanie działa dobrze dla mnie. Dzięki. – shatthi

+5

Pamiętaj, aby dodać 'MediaPlayer.framework' do fazy łączenia celu oraz' #import 'w pliku źródłowym. –

+0

to pomaga mi wyjść. Dziękuję. – Shivaay

14

Nie można zmienić głośności urządzenia programowo, jednak MPVolumeView (suwak głośności) służy do zmiany głośności urządzenia, ale tylko w wyniku interakcji użytkownika.

MPVolumeView jest formantem w przyborniku, musisz dodać MediaPlayer.framework do projektu, a MPVolumeView zostanie wyświetlony w przyborniku w narzędziu do budowania interfejsu.

Edytuj 1: MPVolumeView używa głośności urządzenia, która jest również używana do dzwonienia głośności. AVAudioPlayer jest tam, jeśli chcesz poziom woluminu aplikacji. W tym przypadku można użyć programowej właściwości, aby ustawić głośność aplikacji (nie objętość urządzenia) programowo. Jednakże, można użyć UISlider kontrolę głośności, aby uzyskać wejście od użytkownika i ustawić na swojej AVAudioPlayer

+0

Należy również pamiętać, że jest on dostępny tylko w systemie iOS 4.2, więc przed jego użyciem należy sprawdzić dostępność wersji/klasy. –

+0

Nopes, nowa właściwość dodana w nim do widocznego/ukrywania, nowa właściwość jest dostępna tylko w systemie iOS 4.2, jednak używam jej w iOS3.2, tutaj użyłem jej (system iOS 3.2 lub nowszy), http: // itunes.apple.com/us/app/msiradio/id399408266?mt=8 –

+0

Hmm, to rodzaj porażki. Czy byłbym w stanie odtwarzać dźwięk o innej głośności niż dzwonek lub głośność systemu? Widziałem już kilka aplikacji, które już to robią. –

23

Można użyć trochę trick:

MPMusicPlayerController* musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
    musicPlayer.volume = 1; // device volume will be changed to maximum value 
+0

Wow. To faktycznie zadziałało. Chłodny! – JohnK

+0

Użyj systemMusicPlayer zamiast iPodMusicPlayer dla IOS8 + – Kevin

+0

Właściwość 'volume' jest przestarzała począwszy od wersji iOS 7.0. Możesz to sprawdzić [tutaj] (https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume). – Alex

Powiązane problemy