НЕТ ПОВТОРЯЮЩЕЙ ФУНКЦИОНАЛЬНОСТИ
Пока что я нашел способ справиться с остановкой звука - хотя это не очень красиво:
Я загружаю один и тот же аудиофайл в AVAudioPlayer - и получаю из него длительность звукового файла. Затем, используя
performSelector:withObject:afterDelay:
Я могу остановить AUGraph, когда закончится воспроизведение звукового файла.
ФУНКЦИОНАЛЬНОСТЬ ПАУЗЫ AUGRAPH
Оказывается, реализовать паузу довольно просто. Пока источник данных AUGraph не изменяется - вызывается
[graphController startAUGraph]; or [graphController stopAUGraph];
только приостановит / возобновит воспроизведение.
Хотя это влияет на таймер executeSelector. Таким образом, чтобы использовать обе возможности - пауза / отсутствие повторения, нужно использовать NSTimer - когда AUGraph приостановился - тогда таймер также остановится. Когда AUGraph возобновляется - таймер возобновляет счет, а когда он достигает заданной длительности звукового файла - он прекращает воспроизведение.
Итог
Используя значение продолжительности от AVAudioPlayer (или любого другого проигрывателя, который обеспечивает длительность) - можно реализовать звуковой проигрыватель AUGraph с воспроизведением / паузой / остановкой (без повторов / повторов) / следующей песней / предыдущей песней / функциями + EQUALIZER .