-->

AVAudioPlayer率(AVAudioPlayer rate)

2019-06-25 15:33发布

所以我想在的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];

再次,它起着只是忽略了我设置的速率。 我已经尝试了多种不同的音频文件,但该线程的缘故,我选择的公鸡mono.wav从这个目录: http://sig.sapp.org/sounds/wave/

有没有人曾与改变在iOS 5.1.1播放速率任何成功? 或者没有任何人知道我在这里失踪?

我这样做是为了改变音高的轻微我的一些样品,我知道我可以通过使用RemoteIO或类似的东西做到这一点,但似乎总矫枉过正我想实现(一个简单的播放速度调整)。

Answer 1:

这里是一些代码,我知道的作品,在应用程序我一直在工作刚刚重新测试。 你提到,使用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就可以了。



Answer 2:

修改代码:

avPlayer = [[AVPlayer alloc] initWithURL:referenceURL];

[avPlayer play]; //call play first

avPlayer.rate = 0.5; //then set rate


Answer 3:

这是你如何做到这一点。

率值是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];


Answer 4:

雨燕2.0

let player = AVPlayer(URL: url)
player.play()
player.rate = 0.9


文章来源: AVAudioPlayer rate