2011-02-01 3 views
23

Есть ли способ изменить громкость устройства? Я видел, как это делают некоторые приложения.iOS: Изменение объема устройства

У меня есть настольная версия приложения iOS, и устройство будет в некоторой степени контролироваться по сети. Одна из вещей, которую я хочу разрешить пользователю, - это изменить громкость устройства, а затем воспроизвести звук. Это может помочь, если вы снова потеряете свой iPhone в трещине на своем диване, но не можете его найти.

Есть ли способ, которым вы можете это сделать без того, чтобы Apple сердилась?

ответ

32

Использование iPodMusicPlayer будет влиять на фактический IPOD настройки, а также объем. Если вы хотите, чтобы избежать этого, используйте:

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

Как пользователь holex правильно упоминается свойство volume в MPMusicPlayerController является deprecated in iOS 7.

+1

Вышеупомянутое решение сработало для меня. Благодарю. – shatthi

+5

Не забудьте добавить «MediaPlayer.framework» к фазе привязки вашей цели и '#import ' в исходном файле. –

+0

это помогает мне. Спасибо большое. – Shivaay

14

Вы не можете изменять громкость устройства программно, однако MPVolumeView (громкость) позволяет изменять громкость устройства, но только через взаимодействие с пользователем.

MPVolumeView - это элемент управления на панели инструментов, вам необходимо добавить MediaPlayer.framework в ваш проект, тогда MPVolumeView будет отображаться в панели инструментов в построителе интерфейса.

Редакция 1: MPVolumeView использует громкость устройства, которая также используется для громкости звонка. AVAudioPlayer есть, если вы хотите уровень уровня приложения. В этом случае вы можете использовать свойство том, чтобы запрограммировать объем приложения (а не объем устройства). Тем не менее, вы можете использовать UISlider контроль, чтобы получить входной громкости от пользователя и установить на свой AVAudioPlayer

+0

Также обратите внимание, что он доступен только в iOS 4.2, поэтому вам нужно будет включить проверку доступности версии/класса, прежде чем использовать его. –

+0

Nopes, новое свойство, добавленное в нем для видимого/скрыть его, новое свойство доступно только в iOS 4.2, однако я использую его в iOS3.2, здесь я использовал его (iOS 3.2 или новее), http: // itunes.apple.com/us/app/msiradio/id399408266?mt=8 –

+0

Хм, это своего рода неудача. Смогу ли я воспроизвести звук с разным объемом, чем громкость звонка или системы? Я видел довольно много приложений, которые уже делают это. –

23

Вы можете использовать маленькую хитрость:

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

Ничего себе. Это действительно сработало. Круто! – JohnK

+0

Используйте systemMusicPlayer вместо iPodMusicPlayer для IOS8 + – Kevin

+0

Свойство 'volume' устарело, начиная с iOS 7.0. Вы можете проверить это [здесь] (https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume). – Alex

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