В моем приложении мне необходимо воспроизвести звук с тома 0 до максимального объема системы (это приложение для будильника).Как воспроизвести звуковой файл на максимальной громкости в iOS без изменения звукового индикатора
Я в настоящее время используют AVAudioPlayer
для воспроизведения звука и MPMusicPlayerController
увеличить громкость устройства на время тревоги
MPMusicPlayerController.applicationMusicPlayer.volume = 1.0;
NSString *fileName = [NSString stringWithFormat:alarm.sound];
fileName = [fileName stringByDeletingPathExtension];
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"aifc"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
audioPlayer.volume = 0.0;
audioPlayer.numberOfLoops = -1;
[audioPlayer prepareToPlay];
audioPlayer.play;
, а затем запланировать таймер, чтобы увеличить громкость
timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(pollTimeForGradualVolumeIncrease)
userInfo:nil repeats:YES];
// Увеличить громкость постепенно
- (void)pollTimeForGradualVolumeIncrease
{
timerSecond += 1;
if (audioPlayer.volume < 1.0 && timerSecond % 1 == 0)
{
[audioPlayer setVolume:audioPlayer.volume + 0.02];
UISlider *slider = volumeSliderView.subviews[0];
[slider setValue:1.0 animated:NO];
}
else if (audioPlayer.volume >= 1.0)
{
timerSecond = 0;
timer.invalidate;
timer = nil;
}
}
Проблема заключается в том, что индикатор индикации iOS появится при установке MPMusicPlayerController.applicationMusicPlayer.volume
Есть ли способ воспроизвести звуковой файл на максимальном уровне устройства без отображения индикатора изменения объема iOS?
Вы сказали, что используете громкость музыкального проигрывателя, но я вижу, что вы используете audioPlayer setVolume, который является AVAudioPlayer, вы можете уточнить? – Daniel
Из того, что я понимаю. ApplicationMusicPlayer устанавливает главный том для iOS, и я использую AVAudioPlayer для воспроизведения звука. Это неправильно? Я следовал примеру из http://stackoverflow.com/questions/9279233/ios-maximum-volume-level-for-avaudioplayer?rq=1. AVAudioPlayer воспроизводит звук и постепенно увеличивает громкость на часть основной громкости. –
Я не думаю, что вы можете сделать это, что вы можете сделать, это установить громкость на максимум, сохранить значение громкости перед изменением и вернуться к исходному значению, когда вы перестанете воспроизводить звук ... – Ondrej