Регулятор громкости с помощью UIslider iPhone?

я создаю приложение, в котором играется звук, когда кнопка нажимается и использование UISlider, с которым может быть отрегулирована громкость. Иногда объем звука является слишком большим и иногда его слишком низкое даже после увеличения объема iPhone в полной мере. Как я могу сохранить объем к всегда высоко?? какой-либо возможный способ интегрировать системный том с объемом ползунка?? Используя MPVolumview отклонят мое приложение, я предполагаю.. код, который я использую на касании кнопки, является этим

NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
resourcePath = [resourcePath stringByAppendingString:@"/sound.mp3"];
NSLog(@"Path to play: %@", resourcePath);



player = [[AVAudioPlayer alloc] initWithContentsOfURL:
          [NSURL fileURLWithPath:resourcePath] error:&err];

    player.delegate = self;
    [player play];
    player.volume=.50;
    player.numberOfLoops=-10;

-(IBAction)slidervaluechanged 
{ player.volume=slider.value; }

}

5
задан iwasrobbed 8 July 2010 в 14:09
поделиться

1 ответ

Hemant,

Максимальная громкость, которую вы можете иметь, это когда player.volume равен 1.0 (при условии, что громкость звонка также максимальна).

Если громкость звонка не максимальная, вы можете увеличить ее только до максимального значения, снова используя значение 1.0

Однако, вы можете реализовать MPVolumeView (я почти уверен, так как Pandora делает это) и затем использовать этот ползунок в вашем приложении вместо него. Затем вы можете просто установить player.volume всегда равным 1.0 и позволить ползунку изменять громкость звонка.

Подробнее о том, нужно ли использовать MPVolumeView: http://developer.apple.com/iphone/library/documentation/MediaPlayer/Reference/MPVolumeView_Class/Reference/Reference.html и Как реализовать MPVolumeView?

Я могу ошибаться, но мне кажется, что Apple разрешает MPVolumeView, если вы используете его как есть. В справке к классу говорится, что теперь он изменяет громкость звонка устройства при перемещении ползунка (чего раньше не было, и поэтому людям приходилось обращаться к частному API для этого). Я собираюсь попробовать реализовать это в следующем обновлении через неделю, так что если я получу отказ, я вернусь сюда и обновлю это сообщение, чтобы сообщить всем.

3
ответ дан 15 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: