【发布时间】:2013-02-19 16:00:51
【问题描述】:
在我的应用中,我需要播放音量从 0 到最大系统音量的声音(这是一个闹钟应用)。
我目前使用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;
}
}
这样的问题是设置MPMusicPlayerController.applicationMusicPlayer.volume时会出现iOS音量指示器
有没有办法以最大设备音量播放声音文件而不显示 iOS 音量变化指示器?
【问题讨论】:
-
您说您使用的是应用程序音乐播放器音量,但我看到您使用的是音频播放器 setVolume,它是一个 AVAudioPlayer,您能澄清一下吗?
-
据我了解。 ApplicationMusicPlayer 为 iOS 设置主音量,我使用 AVAudioPlayer 播放声音。这不正确吗?我按照stackoverflow.com/questions/9279233/… 中的示例进行操作。 AVAudioPlayer 播放声音并逐渐将音量增大到主音量的一小部分。
-
我不认为你可以这样做,你可以做的就是将音量设置为最大,保留更改前的音量值,当你停止播放时恢复到原来的值声音...
标签: iphone ios audio volume max