Использование AVQueuePlayer для обеспечения / соблюдения желаемых разрывов между PlayItems - PullRequest
1 голос
/ 23 июля 2011

Привет всем, я использую AVQueuePlayer для воспроизведения последовательности медиа-файлов (аудио, видео).Иногда у меня есть PlayItems, которые короче, чем мне нужно, т.е. я хочу молчания между некоторыми предметами.Я подумывал о том, чтобы попытаться использовать какую-то комбинацию addPeriodicTimeObserverForInterval addBoundaryTimeObserverForTimes или запустить свою собственную NSTimer.

. Это не должно быть сверхточным + или - 1 секунда приемлема.Мне интересно, есть ли какая-то коллективная мудрость относительно использования этих вызовов API для достижения такой функциональности?

1 Ответ

1 голос
/ 11 августа 2011

Почему бы не наблюдать за окончанием предметов, а затем, при необходимости, начать играть снова только после некоторой задержки?

Вы начинаете наблюдать конец AVPlayerItem, как это:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playEnded) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];

Затем в вашем методе playEnded вы можете решить, как долго вам нужно ждать, и вызвать другой метод, чтобы начать воспроизведение следующего элемента после задержки.

-(void)playEnded {
    [self performSelector:@selector(playNextItem) withObject:nil afterDelay:5.0];
}
...