2014-10-06 3 views
0

Я создал AVPlayer и установил forwardPlaybackEndTime, чтобы сделать локальную остановку видео в заданную метку времени. Конечно же, видеоролик останавливается в то время, когда я просил. Все хорошо.Резюме AVPlayer после forwardPlaybackEndTime

Теперь я хочу, чтобы видео продолжалось при срабатывании пользователя (например, касание кнопки). К сожалению, я не могу показаться, что это произойдет без перезапуска видео с самого начала.

Я избавлю вас все настройки кода AVPlayer (который в основном взяты из AV Foundation Programming Guide), но, учитывая эти переменные:

AVPlayer *avPlayer; 
AVPlayerItem *playerItem; 

я могу установить конечное время как так:

[playerItem setForwardPlaybackEndTime: CMTimeMake(30, 30)]; 

пытаться резюме, я попытался это:

[playerItem setForwardPlaybackEndTime: CMTimeMake(30, 30)]; 
[avPlayer setRate: 1.0]; 

нет кости. Я также попытался установить время окончания и позвонить play. Не повезло. Я пробовал seekToTime, чтобы поставить точку воспроизведения в том месте, где видео остановилось на случай, если это поможет. Это не так.

Может кто-нибудь объяснить, как это сделать? Благодаря!

ответ

1

Попробуйте установить forwardPlaybackEndTime на значение по умолчанию, kCMTimeInvalid, затем продолжите воспроизведение видео.

[playerItem setForwardPlaybackEndTime: kCMTimeInvalid]; 
[playerItem seekToTime: CMTimeMake(30, 30) toleranceBefore: kCMTimeZero toleranceAfter: kCMTimeZero]; 
[avPlayer play]; 
+0

Не работает. Это также перезапускает видео до начала, а затем запускается до конца. – Axeva

+0

Как насчет вышеупомянутой отредактированной версии? Ищите точку, которую вы остановили, затем продолжайте. – picciano

+0

По-прежнему ничего хорошего. Видео всегда перезапускается с самого начала. – Axeva

Смежные вопросы