控制声音xcode的速度

我想知道是否有可能在xcode中减慢声音。 我的意思是我将在xcode中的支持文件中添加一些.mp3文件,我将创build可以加速或减速的应用程序。 例如与滑块。 这甚至有可能吗? 如果是的话,有谁能帮我一些想法? 谢谢

AVAudioPlayer有一个价格属性,应该能够帮助你实现你的目标。 http://developer.apple.com/library/IOS/#documentation/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html

audio播放器的播放速率。 @property浮动利率

讨论

此属性的默认值为1.0提供了正常的播放速率。 可用范围是半速播放0.5到2.0倍播放。

要设置audio播放器的回放速率,您必须首先启用速率调整,如enableRate属性描述中所述。

我还在AVAudioPlayer的速率: AVAudioPlayer速率上find了一个好的SOpost

好像你刚才提到的,你可以设置滑块的值从0.5到2.0,通过使用valuechanged修改audio播放器的速率

 - (IBAction)changeValue:(UISlider *)sender { //made up assumed ivar names if ([_audioPlayer respondsToSelector:@selector(setEnableRate:)]) _audioPlayer.enableRate = YES; if ([_audioPlayer respondsToSelector:@selector(setRate:)]) _audioPlayer.rate = [NSNumber numberWithFloat:slideValue]; } 

以比其采样率更快或更慢的速率播放PCMaudio会改变其音调,同时也引入了相当大的人为因素。 如果你确定的话,你将使用的方法是将MP3解码成PCMaudio,然后使用直接数字合成振荡器来控制播放速率。

如果你想保持音调,但改变速度,你需要一个audio时间拉伸algorithm。

DSP Dimension的 Dirac3是一个可以做到的商业产品,可以在iOS应用程序中使用。 其他商业解决scheme存在

DSP Dimension的博客提供了一个有用的教程,介绍如何使用FFT实现音调平移。 时间延伸本质上是相同的过程。 然而,在DIRAC插件中有一点秘密的东西,他们没有告诉你。

要警告的是,除非你是一名电子工程,物理或mathgradle生,否则你可能很难填补空白。

Interesting Posts