MPMusicPlayerController没有响应1附近的currentPlaybackRate

我正在尝试使用MPMusicPlayerController上的currentPlaybackRate属性来调整音乐曲目播放时的速度。 当速率小于0.90或大于1.13时,该属性按预期工作,但对于刚好高于和低于1的范围,速度似乎没有变化。 这是我正在尝试的:

UIAppDelegate.musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 

…从图书馆加载音乐播放器

 [UIAppDelegate.musicPlayer play]; - (void)speedUp{ UIAppDelegate.musicPlayer.currentPlaybackRate = UIAppDelegate.musicPlayer.currentPlaybackRate + 0.03125; } - (void)speedDown { UIAppDelegate.musicPlayer.currentPlaybackRate = UIAppDelegate.musicPlayer.currentPlaybackRate - 0.03125; } 

我可以监视值currentPlaybackRate并看到它被正确设置,但是在达到0.9或1.13阈值之前,回放速度似乎没有什么不同。 有没有人对此事有任何指导或经验?

我不是专家,但我怀疑这种现象可能仅仅是用于在不提高或降低音高的情况下改变播放速度的算法的假象。 这是一个棘手的业务,在这里必须实时完成而不会有太多失真,因此可能需要一个整数倍的速度。 您可能希望阅读维基百科关于时间延伸的文章, http://en.wikipedia.org/wiki/Audio_timescale-pitch_modification

实际上我已经发现了问题:句子myMusicPlayer.currentPlaybackRate = 1.2必须放在句子.play()之后。 如果您将速率设置放在.play()之前,它将无效。