在iOS中的AVAudioPlayerNode中播放特定次数的声音

时间:2018-04-23 09:05:56

标签: ios avaudioplayer avaudioengine avaudioplayernode

AVAudioPlayer中有一个选项 numberofloops ,它会重复声音文件达指定的次数。

我必须在AVAudioPlayerNode中实现这种类型的函数,我发现一个选项只是使用以下代码在循环中无限次循环声音文件

  

audioPlayerNode.scheduleBuffer(audioFileBuffer,atTime:nil,   选项:.Loops,completionHandler:nil)

是否可以像AVAudioPlayer那样在固定次数内重复播放文件?有没有代码示例来实现这个目标?

1 个答案:

答案 0 :(得分:0)

我不确定是否有选项可以执行此操作,但您可以通过创建如下的简单函数来实现此目的。

func playBuffer(buffer,times) {
for (var i=1;i<=times;i++) {   
audioPlayerNode.scheduleBuffer(audioFileBuffer)
}
}

然后你调用这个函数

playBuffer(buffer,3) // to execute three times.
// or
playBuffer(buffer,1) // to execute one time.

p.s:这几乎就像一个伪代码,只是为了显示逻辑。你必须迅速写出来。