我有:
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];使用这款应用时,我需要把音乐调低以发出闹钟,当它消失时,我想把它调到以前的音量。这里的musicVolume是一个双精度的,它存储淡入淡出之前的音量水平:
musicVolume = musicPlayer.volume;
if (musicPlayer.playbackState == MPMusicPlaybackStatePlaying)
[self fadeMusicOut];这样可以很好地淡出音乐。
要将其淡入:
- (void) fadeMusicIn
{
[musicPlayer play];
musicPlayer.volume += 0.05;
if (musicPlayer.volume < musicVolume)
[self performSelector: @selector(fadeMusicIn)
withObject: nil
afterDelay: 0.1 ];
else
{
}
}这会使音乐淡入,但是,它带来的音量总是比以前设置的要小。
我怎样才能恢复到原来的卷?提前谢谢。
发布于 2012-05-13 07:33:12
当musicPlayer.volume等于或大于musicVolume时,您所说的if (musicPlayer.volume < musicVolume)基本上就是停止调用performSelector: withObject: afterDelay:方法,或者在if语句中调用的任何方法。但是你希望它是相等的。所以试试吧:
- (void) fadeMusicIn
{
...
if (musicPlayer.volume == musicVolume)
[self performSelector: @selector(fadeMusicIn)
withObject: nil
afterDelay: 0.1 ];
...
}这样,如果musicPlayer.volume小于或等于,if语句就会停止,所以一旦等于,它就会停止
更新,请尝试==
https://stackoverflow.com/questions/10568174
复制相似问题