Скажите, что у меня есть аудиофайл и коллекция временной информации о конкретных сегментах этого аудиофайла, а именно их startTime и endTime.То, что я хотел бы сделать, это воспроизвести аудиофайл последовательно, начиная с начала и перемещая сегмент за сегментом по файлу.
Итак, например, скажем, у меня есть данные, подобные следующим:
Сегмент 1 - время начала: 1,0 с, конечное время: 3,4 с Сегмент 2 - время начала: 3,4 с, конечное время: 5,0 с Сегмент 3 - время начала: 7,8 с, конечное время: 9,5 с ...
Я хочувоспроизводить аудиофайл последовательно, сегмент за сегментом.Он запустит 1.0 с в файл, воспроизведет до 3.4 с, затем остановится и подождет, пока пользователь нажмет кнопку.Как только пользователь нажмет кнопку, он будет воспроизводиться от 3,4 с до 5 с, затем от 7,8 до 9,5 с и т. Д.
У пользователя также будет возможность «вычистить» звук (ноне в промежутках между сегментами), поэтому, хотя я играю последовательно, существует возможность возврата к предыдущему сегменту, и в этом случае этот процесс повторится (т. е. если пользователь выполняет переход к предыдущему или более позднему сегменту, он будетпауза, когда он достигает конца этого отрезка).
Как лучше всего достичь этой цели?Кажется, что я могу использовать AVAudioPlayer, но я не вижу способа приостановить его точно в endTime, кроме повторного опроса currentTime.AVPlayer и AVPlayerItem выглядят как другая возможность, но если я понимаю документацию, есть только один элемент проигрывателя за раз ... поэтому я предполагаю, что мне потребуется обработать замену AVPlayerItems, чтобы заставить работать функцию очистки.
Есть ли какие-либо предложения о том, как лучше всего достичь этой цели?