Использование UISlider для изменения громкости - PullRequest
7 голосов
/ 20 января 2009

Как лучше всего использовать UISlider для изменения громкости iPhone в приложении?


Я пытался использовать этот счет ( Использование UISlider для изменения громкости )

Но на экране ничего не появляется с помощью кода:

MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:
                                CGRectMake(0, 0, 215, 22)] autorelease];
volumeView.center = CGPointMake(150,375);
[volumeView sizeToFit];
[self.view addSubview:volumeView];

Ответы [ 5 ]

15 голосов
/ 19 июня 2009

Я только что нашел очень простой способ. Вместо того, чтобы кодировать, просто поместите его в свой XIB.

  1. Откройте XIB, куда вы хотите поместить слайдер в
  2. Добавить UIView к вашему виду
  3. Изменить идентификатор класса с UIView на MPVolumeView
  4. Изменить цвет фона на прозрачный

Voila!

PS: протестировано на устройстве с iPhone OS 3.0. Как говорилось в lostInTransit, он не будет работать на симуляторе.

2 голосов
/ 21 января 2009

Использование UISlider для изменения громкости

^ Я пробовал потерянный транзит, но это не меняет громкость звонка . Он появляется на экране iphone, но ничего не меняет. Даже с использованием предоставленного демо-проекта.

1 голос
/ 04 августа 2009

Я использую эту же технику, однако замечаю следующее поведение:

На iPod touch G2: Ползунок MPVolumeView работает и полностью реагирует на тумблер во время запуска приложения.

На iPhone Gen 1 и 3G: Ползунок MPVolumeView не начинает изменять громкость, пока воспроизведение мультимедиа не происходит через API-интерфейсы AudioQueue, и прекратит изменять громкость при вызове AudioSessionSetActive (false). Еще более странно: если вы нажмете джойстик на iPhone при использовании API-интерфейсов AudioQueue во время воспроизведения, то ползунок MPVolumeView будет работать до конца жизни приложения.

Этот код поддерживает синхронизацию всего и помогает обеспечить синхронизацию клавишного переключателя и ползунка, но не устраняет проблемы, возникающие у меня с MPVolumeView на iPhone.

Весь мой опыт здесь под iPhone OS 3.0 с iPhone 3.0 SDK.

Надеюсь, это поможет немного сузить вашу проблему.

Моя следующая тактика состояла в том, чтобы начать что-то делать с kAudioSessionProperty_AudioRoute и попробовать альтернативные значения для kAudioSessionProperty_AudioCategory, чтобы увидеть, что происходит.

Примечание: Спасибо всем за методы IB для создания и управления MPVolumeView. Я использовал код для его создания и размещения, и я постоянно забываю о технике, в которой вы можете установить тип UIView в IB.

Примечание 2: Работая с MPVolumeView, я обнаружил, что если вы установите для категории аудио что-либо, кроме kAudioSessionCategory_MediaPlayback, MPVolumeView будет отображать текст «iPhone ...», когда iPhone установлен в беззвучный режим.

0 голосов
/ 21 января 2009

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

http://www.stormyprods.com/blogger/2008/09/proper-usage-of-mpvolumeview-class.html

0 голосов
/ 21 января 2009

Используйте MPVolumeView для отображения ползунка, который позволяет пользователю изменять системный том.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...