sto streaming audio utilizzando AVPlayer. Funziona bene. Ma ora ho bisogno di fare un cursore per spostare l'audio avanti e indietro, come un tipico lettore musicale. Ho usato la funzione seekToTime
che funziona benissimo con il file audio locale. Ma quando eseguo il flusso del brano dall'URL del web, la funzione arresta l'audio quando faccio scorrere il cursore in avanti con un intervallo ampio.SeekToTime in AVPlayer interrompe la riproduzione audio in streaming, quando avanti
La mia ipotesi è che il brano sia in fase di download e se sposto lo slider in avanti con un ampio intervallo, è possibile che il sistema non abbia scaricato i pacchetti di dati del brano per quel tempo, quindi interrompe il lettore.
Diciamo che ho appena colpito un pulsante per lo streaming di canzone, ma ora mi muovo subito cursore a 0 alla seconda 100 °. In questo caso il sistema non funziona e arresta il lettore. A causa della mancanza di pacchetti di dati per quel tempo.
Ha qualcuno sa come superare questo problema o c'è qualche altro approccio. Sto usando SWIFT per lo sviluppo. Sono disposto a utilizzare qualsiasi libreria anche se funzionerebbe in modo rapido. Questa è la mia funzione:
func forward() {
timeGap = slider.value
let preferredTimeScale : Int32 = 1
let targetTime : CMTime = CMTimeMake(timeGap, preferredTimeScale)
player.seekToTime(targetTime, toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)
}
Grazie in anticipo.
ho notato che quando inizio un video in diretta streaming la il buffer è vuoto fin dall'inizio ('playbackBufferEmpty == true') e il flag playbackBufferEmpty non cambia mai il suo stato in falso. C'è un modo per avviare manualmente il buffering usando AVFoundation? – svrs