Actuellement en pleine préparation d’un produit tournant autour de la vidéo (plus d’informations très bientôt), nous avons rencontré un problème que beaucoup de développeurs flex ont surement rencontré. En effet, quand il s’agit d’afficher une vidéo dans un player qui n’est pas à ses dimensions et principalement quand il s’agit d’agrandir la vidéo, cette dernière se retrouve plombée par un fort aliasing. Il s’agit de petits crénaux qui apparaissent sur les courbes des objets affichés, qui rendent la vidéo pixélisée. Cela est particulièrement visible quand on affiche en plein écran la dite vidéo.
Alors comment faire pour anti-aliaser tout cela ?
La classe Video propose une option « smoothing », permettant de corriger ce problème. Mais pour ceux d’entre vous qui souhaitent utiliser la classe VideoDisplay, vous allez vous rendre compte qu’il n’est pas possible d’accéder à l’instance de la classe Video. En fait, il existe un moyen assez simple d’y accéder :
Supposons que le VideoDisplay possède l’id « vidDisplay », il suffit de faire « vidDisplay.mx_internal::videoPlayer.smoothing = true » pour activer l’anti-aliasing.
On constate une légère hausse de l’activité du processeur, surtout quand la vidéo affichée est grande, mais rien de bien catastrophique.
Voici un exemple de ce que cela peut donner, avec le code source.





Commentaires