因此,我尝试在iOS 5.1.1中以不同的速率播放声音文件,但绝对没有运气。到目前为止,我已经尝试设置了AVAudioPlayer的速率:
player = [[AVAudioPlayer alloc] initWithContentsOfURL:referenceURL error:&error];
player.enableRate = YES;
player.rate = 1.5;
player.numberOfLoops = 0;
player.delegate = self;
[player prepareToPlay];
[player play];如果完全没有运气,声音就会播放,但会忽略我给它的速率。我也尝试过AVPlayer:
avPlayer = [[AVPlayer alloc] initWithURL:referenceURL];
avPlayer.rate = 0.5;
[avPlayer play];同样,它会播放,但会忽略我设置的速率。我已经尝试了许多不同的音频文件,但是为了这个主题,我从这个目录中选择了Rooster-mon.wav:http://sig.sapp.org/sounds/wave/
有没有人成功地改变了iOS 5.1.1的播放速率?或者有人知道我在这里错过了什么吗?
我这样做是为了稍微改变我的一些样本的音高,我意识到我可以通过使用RemoteIO或类似的东西来做到这一点,但这似乎完全夸大了我试图实现的目标(简单的回放速率调整)。
发布于 2012-06-21 17:59:29
这里有一些我知道可以工作的代码,只是在我一直在开发的应用程序中重新测试。正如您所提到的,使用setEnableRate:和setRate:只适用于iOS 5.0和更高版本。因此,我使用respondsToSelector:在设备上测试设备是否会接受请求:
_noticeAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Rooster-mono" ofType:@"wav"]]
error:nil];;
if ([_noticeAudio respondsToSelector:@selector(setEnableRate:)])
_noticeAudio.enableRate = YES;
if ([_noticeAudio respondsToSelector:@selector(setRate:)])
_noticeAudio.rate = 2.0;它在iOS 5设备上运行,成功地执行了双倍速率。在iOS 4.3上运行,它以正常速度播放。
所以,只有在你的设备上安装了iOS 5的情况下,你才能获得合适的价格。
发布于 2012-07-24 18:13:24
将代码修改为:
avPlayer = [[AVPlayer alloc] initWithURL:referenceURL];
[avPlayer play]; //call play first
avPlayer.rate = 0.5; //then set rate发布于 2013-06-07 23:04:32
这就是你怎么做的。
速率值在0.1f - 2.0f之间
player = [[AVAudioPlayer alloc]
initWithContentsOfURL:[NSURL fileURLWithPath:path]
error:&err];
player.volume = 0.4f;
player.enableRate=YES;
[player prepareToPlay];
[player setNumberOfLoops:0];
player.rate=2.0f;
[player play];https://stackoverflow.com/questions/11131631
复制相似问题