Uso AVPlayer in un'app Cocoa e ho implementato un comando che salta alla fine del video.Ricerca accurata, al contrario di due secondi, in AVPlayer
Il problema è che AVPlayer non cerca dove l'ho detto.
Ad esempio, uno dei video che ho è lungo 4 minuti e 14 secondi. Quando cerco la fine, AVPlayer cerca 4 minuti e 12 secondi, due secondi in meno. Se poi premo play, il lettore giocherà per due secondi, quindi raggiungere la fine.
Il mio primo tentativo è stato questo:
[self.player seekToTime:self.player.currentItem.duration];
sono passato a questo:
[self.player seekToTime:self.player.currentItem.duration
toleranceBefore:kCMTimePositiveInfinity
toleranceAfter:kCMTimeZero];
Né si lavora meglio rispetto agli altri.
Ho anche provato a cercare su kCMTimePositiveInfinity
. Mi ha semplicemente ignorato allora.
Non sembra importare se il giocatore abbia già caricato quella parte del video. Posso anche cercare il non-fine-fine, giocare fino alla fine vera, quindi provare di nuovo a cercare fino alla fine, e tornerà al non-fine-fine.
Il deficit non è sempre di due secondi. Su alcuni dei miei video, funziona più o meno esattamente correttamente, saltando molto vicino al vero fine se non esattamente ad esso. Su almeno uno, si riduce a tre secondi. La lunghezza non sembra essere un fattore; tutti questi sono circa della stessa lunghezza, tranne uno, che dura più di un'ora e cerca due secondi più corti.
Quindi, perché AVPlayer è in grado di saltare fino a tre secondi rispetto a dove l'ho detto, e come posso convincerlo a saltare al momento in cui ho richiesto?
impostazione kCMTimePositiveInfinity mi ha aiutato anche per evitare questo piccolo spostamento all'indietro del cursore quando si cerca. –
Semplicemente fantastico! –