Проигрывайте звук определенное количество раз в AVAudioPlayerNode в iOS

Есть опция numberofloops в AVAudioPlayer который повторяет звуковой файл указанное количество раз.

Я должен реализовать этот тип функции в AVAudioPlayerNode и я нашел возможность просто зациклить звуковой файл в бесконечное количество раз в цикле, используя следующий код

audioPlayerNode.scheduleBuffer (audioFileBuffer, atTime: nil, параметры:.Loops, завершение Handler: nil)

Можно ли повторно воспроизвести файл за фиксированное количество раз, например, как AVAudioPlayer? Есть ли пример кода для достижения этой цели?

1 ответ

Я не уверен, есть ли возможность сделать это, однако вы можете достичь этого, создав простую функцию, как показано ниже.

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.

PS: это почти как псевдокод, просто чтобы показать логику. Вы должны написать это быстро.

Другие вопросы по тегам