Quale algoritmo è utilizzato nei sottotitoli?

1

Quale algoritmo utilizza un video player per trovare i sottotitoli da mostrare in qualsiasi momento?

Sto costruendo un video player che mostra alcune note su tempi diversi su un video. Ogni nota ha un'ora di inizio e un'ora di fine, proprio come i sottotitoli.

Sto riscontrando problemi con un algoritmo per trovare tutte le "note" mentre il video è in riproduzione, ovviamente voglio che sia il più efficiente possibile, e ho capito che i sottotitoli funzionano sostanzialmente allo stesso modo (Se essi sono ordinati per "ora di inizio").

Lo sto costruendo con Javascript poiché il lettore è progettato per funzionare nel browser, e questo lo rende ancora più importante per essere performante.

Ho pensato di usare un albero binario, ma non penso che funzionerà, perché un albero binario si confronta con un parametro, e non sono sicuro che sarà l'opzione migliore dopo averlo modificato.

    
posta Samuel E. 22.11.2018 - 17:14
fonte

3 risposte

4

A meno che i sottotitoli non si sovrappongano, l'algoritmo è piuttosto semplice:

  • conserva i sottotitoli in un elenco ordinato.
  • nel tuo ciclo degli eventi, determina l'ora corrente
  • se è maggiore dell'ora di fine del sottotitolo corrente, disattivalo
  • se è più grande dell'inizio del primo sottotitolo nell'elenco, pubblicalo e rimuovilo dall'elenco.

Ti aspetti qualcosa di più complicato nei tuoi sottotitoli rispetto a una semplice sequenza di elementi successivi?

    
risposta data 22.11.2018 - 17:21
fonte
3

I sottotitoli sono ordinati: quelli che appaiono più avanti nel video vengono memorizzati dopo quelli che appaiono prima.

Pertanto, usa un semplice cursore che punta al sottotitolo successivo da mostrare.

Per far scomparire i sottotitoli (assicurandoti che la sovrapposizione sia possibile), imposta i singoli timeout per ogni sottotitolo che viene mostrato, oppure usa un secondo cursore. Il primo approccio è molto più semplice in JavaScript.

    
risposta data 22.11.2018 - 17:24
fonte
0

Dipende dal giocatore che usi, ma la stragrande maggioranza può gestire questo tipo di evento "cronometrato" attraverso il cue point, dovresti indirizzare il tuo pensiero verso questo percorso. Fondamentalmente si tratta solo di un evento temporale relativo con il tempo di quel video.

    
risposta data 17.12.2018 - 12:01
fonte

Leggi altre domande sui tag