Аудиоустройство График паузы и повторения - PullRequest
1 голос
/ 02 ноября 2011

Я пытался реализовать Audio Unit Graph, используя предоставленный Apple код: IphoneMixerEQGraphTest .Пока что я столкнулся с двумя проблемами:

1.) Я не могу найти способ приостановить игру

2.) Приведенный пример повторяется бесконечно.Есть ли способ, которым я могу отключить повтор или остановить его - используя таймер, перехватывая какое-то значение буфера, когда воспроизведение почти в конце?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2012

AVAudioPlayer - огромный класс. Вы можете легко получить длительность от:

Float64 fileDuration = PrepareFileAU (fileAU, fileFormat, audioFile);

см. Образец АЦП по адресу:

http://developer.apple.com/library/mac/#samplecode/PlayFile/Introduction/Intro.html

избегать включения других рамок.

0 голосов
/ 02 ноября 2011

НЕТ ПОВТОРЯЮЩЕЙ ФУНКЦИОНАЛЬНОСТИ

Пока что я нашел способ справиться с остановкой звука - хотя это не очень красиво:

Я загружаю один и тот же аудиофайл в AVAudioPlayer - и получаю из него длительность звукового файла. Затем, используя

performSelector:withObject:afterDelay: 

Я могу остановить AUGraph, когда закончится воспроизведение звукового файла.

ФУНКЦИОНАЛЬНОСТЬ ПАУЗЫ AUGRAPH

Оказывается, реализовать паузу довольно просто. Пока источник данных AUGraph не изменяется - вызывается

[graphController startAUGraph]; or [graphController stopAUGraph];

только приостановит / возобновит воспроизведение.

Хотя это влияет на таймер executeSelector. Таким образом, чтобы использовать обе возможности - пауза / отсутствие повторения, нужно использовать NSTimer - когда AUGraph приостановился - тогда таймер также остановится. Когда AUGraph возобновляется - таймер возобновляет счет, а когда он достигает заданной длительности звукового файла - он прекращает воспроизведение.

Итог

Используя значение продолжительности от AVAudioPlayer (или любого другого проигрывателя, который обеспечивает длительность) - можно реализовать звуковой проигрыватель AUGraph с воспроизведением / паузой / остановкой (без повторов / повторов) / следующей песней / предыдущей песней / функциями + EQUALIZER .

...