HI,
有没有办法调整MPMusicPlayerController正在播放的歌曲的速度?
我到处搜索但没有找到任何有用的东西。如果没有办法,我在哪里可以找到与其他组件一起使用的示例?有人说OpenAL,但我找不到任何明确的方法来使用iPod库并改变歌曲的速度......
主要是我需要的是:
如果用户按下“Slow Down”,歌曲的速度会减慢5%或更低。 “加速”反之亦然。
我真的希望有人能帮助我!
提前致谢!
答案 0 :(得分:4)
您可以在iOS 3.2及更高版本中执行此操作 -
[musicPlayer play];
[musicPlayer setCurrentPlaybackRate:2.0];
答案 1 :(得分:1)
您可以将AVAudioPlayer和AVPlayer用于上述目的 他们有一个速率属性,可以设置歌曲的速度。
[AVPlayer setRate:1.25]; // 25% faster
但是,AVPlayer无法将速度提高5%但速度提高25%,AVAudioPlayer无法将速度提高到iOS 5及以上。
如果您想选择其他替代方案,那么Dirac是最佳选择。试试免费的DIRAC 3 LE。
使用此Link了解如何使用Dirac。有关更多信息,请与我们联系。
@girish_vr
答案 2 :(得分:-1)
不,你不能只使用MPMusicPlayerController。
如果您不介意音高与速度变化成比例上下变化,那么您可以在将声音文件转换为原始PCM样本文件或缓冲区后使用OpenAL重采样器。
如果您不希望音高发生变化,您需要的是DSP时间间距拉伸/修改/校正技术。 OpenAL无法做到这一点,但有商业DSP库(DIRAC可能是一个)可以在iOS上实现。您也可以尝试编写自己的相位声码器,但这是非平凡的数字信号处理代码。