2011-02-05 8 views
10

Desidero aggiungere un "sottotitoli" a un video riprodotto in un'app per iPhone. Non voglio che i sottotitoli siano codificati nel video stesso - preferirei avere una vista che mostri il video (con pausa, riproduzione, volume e controlli standard di questo tipo) insieme a una visualizzazione che mostra il testo che cambia insieme al tempo del film mutevole.È possibile riprodurre un video su iPhone e mostrare i sottotitoli sincronizzati?

Se ho disegnato questo, è qualcosa di simile, movie with subtitle

Quindi, fondamentalmente, avrei bisogno di un modo per ottenere un metodo chiamato quando film è in riproduzione, e quindi sincronizzare il testo visualizzato in etichetta con la tempi di film.

Chiunque utilizzato una soluzione che fosse in grado di farlo?

+0

Sarebbe il video sia sul dispositivo (locale) o lo streaming? Se lo streaming è possibile codificare al volo usando qualcosa di simile: http://www.tuaw.com/2011/02/08/banana-tv-may-let-ios-devices-stream-video-to-the-mac/da http://ericasadun.com/ potrebbe disporre di codice per la codifica che è possibile utilizzare anche per la riproduzione di video locali. Utilizzerai un file .srt per i sottotitoli? –

+0

possiamo modificare utilizzando il testo che cambia nel video come nei film in cui i nomi degli attori vengono uno per uno. – Imran

risposta

9

recentemente ho fatto qualcosa che sincronizza la grafica a volte in una traccia audio. Il modo in cui l'ho fatto è stato utilizzando la proprietà currentPlaybackTime dell'interfaccia MPMediaPlayback (a cui anche il controller di MoviePlayer dovrebbe conformarsi). Questo restituisce i secondi trascorsi nei media, in un double (typedef'ed come NSTimeInterval). La sincronizzazione reale nella mia app non è stato fatto nelle notifiche, come non ho potuto trovare alcuna simile a un "tick", ma invece ho creato un timer, chiamando una funzione interrogato il currentPlaybackTime, e aggiornato la grafica in base a questo.

In termini di implementazione, vorrei assumere di avere un qualche tipo di sistema di associare il testo dell'etichetta (sottotitoli) con un particolare momento. È quindi possibile confrontare l'intervallo di tempo del testo con il tempo restituito da currentPlaybackTime per trovare il testo corretto da visualizzare.

+0

possiamo modificare utilizzando il testo che cambia nel video come film in cui i nomi degli attori vengono uno per uno. – Imran