2010-05-10 9 views
5

Sto usando una VideoView per visualizzare un video. Sto usando setOnPreparedListener e setOnCompletionListener per fare cose prima e dopo l'inizio e la fine del video.VideoView Android - Rileva il punto del tempo nel video

Mi stavo chiedendo come potrei andare a rilevare qualche punto del tempo nel video. Ad esempio, supponiamo di voler scrivere il log in un file quando il video è stato riprodotto per 10 secondi. Come posso rilevare il marchio 10s?

Grazie Chris

risposta

5

Passo # 1: Utilizzare postDelayed() o qualcosa da mettere sotto controllo ogni secondo o giù di lì.

Passaggio n. 2: controllare getCurrentPosition() e verificare se è vicino al punto desiderato dell'indicatore. Se è così, fai la tua elaborazione.

Passaggio n. 3: risciacquare, ripetere.

Non vi è alcun meccanismo per Android per chiamare in modo specifico quando si è verificato un determinato punto nel tempo, quindi è necessario accontentarsi di un meccanismo di polling.

+1

dalla mia esperienza questo funziona fino a un certo punto, ma non è molto preciso. Forse +/- 500 ms – justinl

+0

C'è un vantaggio nell'usare PostDelayed rispetto a un timer semplicemente controllare la posizione corrente. Mi chiedevo se ci sia qualche vantaggio nell'usare i gestori rispetto all'utilizzo dei timer in Android. –

+0

@ sleeping.ninja: i timer richiedono un thread; 'postDelayed()' no. – CommonsWare

Problemi correlati