- General Movie getDuration() avec QTJava | Cactus

Movie getDuration() avec QTJava

QTJava me sert à pas mal de choses. Notamment, je m'en sers pour déterminer automatiquement la durée des films 3gp sur Mobipict. J'en profite juste pour noter quelque chose car je ne l'ai pas rencontré ailleurs.

En effet, quicktime for java renvoie une valeur bizzarre pour Movie.getDuration(). En fait c'est une valeur qui est liée au TimeScale du film. Chaque film vu par quicktime a en effet un timescale qui fait des ticks et qui définit une échelle de temps par rapport à laquelle tout le monde s'accorde. Comme le 3gp c'est du quicktime (en gros), il y a cette info.

Tous les codes que j'ai trouvé utilisent des bouts de code exploitant directement getDuration() ou le divisant par une valeur arbitraire. C'est faux. En effet, parfois le film a un timescale de 1, parfois de 600 (valeur par défaut). Dans mon cas, c'est différent.

Pour obtenir la durée en secondes d'un film, il vaut mieux faire:

QTSession.open(); importFile = new QTFile(sourceFile); myMovie = Movie.fromFile(OpenMovieFile.asRead(importFile)); duration = myMovie.getDuration()/myMovie.getTimeScale();

Voilà !

Publié le 7 Jan 2006
Écrit par Cyril Godefroy