MPVolumeView больше не работает на устройствах iOS 7

До сих пор я использовал MPVolumeView для управления громкостью своих устройств iOS, которые отлично работали до обновления до iOS7.

Я создал тестовый проект (Base SDK 6.1, Deployment Target 5.1), в котором есть только один MPVolumeView на одном UIView. При запуске этого приложения на моем iPad 1 (iOS 5.1) все работает нормально, а на моем iPhone 5 (iOS 7) — нет.

На моем iPad перетаскивание ползунка громкости изменяет громкость всего устройства. Также, когда я использую аппаратные кнопки, это отражается на моем ползунке в VolumeView. С другой стороны, на моем iPhone кажется, что между этими элементами управления больше нет связи. Аппаратные кнопки не приводят к каким-либо изменениям в моем VolumeView, а изменение ползунка в регуляторе громкости не приводит к изменению уровня громкости устройств.

Мне нужно иметь, например. iPodMusicPlayer что-то играет, тогда это работает. В противном случае это не так.

Кто-нибудь, как я могу заставить это работать снова? Мне действительно нужно контролировать уровень звука всего устройства (не обязательно программно, пользователь должен иметь возможность изменить его в моем приложении), а не только уровень звука, воспроизводимый самим приложением.


person Toubey    schedule 26.09.2013    source источник


Ответы (1)


После долгих исследований я получил ответ здесь. Но я не уверен, попробуйте с этим, если у вас возникнут какие-либо проблемы, дайте мне знать

Вместо MPVolumeView вы также можете использовать:

 AVAudioPlayer *testPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"m" ofType:@"caf"]] error:nil];

    [testPlayer prepareToPlay];

до установки MPVolumeView.

если ваше приложение, использующее Audio session режим AVAudioSessionModeVoiceChat, не позволяет MPVolumeView работать без обходного пути.

person codercat    schedule 29.11.2013