Воспроизведение звука определенное количество раз в AVAudioPlayerNode в iOS

В AVAudioPlayer есть параметр numberofoops, который повторяет звуковой файл заданное количество раз.

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

audioPlayerNode.scheduleBuffer(audioFileBuffer, atTime: nil, options:.Loops, completeHandler: nil)

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


person Simant    schedule 23.04.2018    source источник


Ответы (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.

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

person Satizh J    schedule 18.05.2018