Estoy usando en los productos elearning que desarrollo un componente de video de AF Components (en as2). Cuando se escala el player de flash (requisito del cliente) el vídeo pierde calidad. No podemos usar vídeos de mayor calidad ya que el cliente nos limita su bitrate a 150Kb. No he encontrado forma de suavizar el video.
Con este componente, utilizo un script (detallado abajo) que me permite añadir subtítulos a los videos desde un xml.
En ocasiones, he utilizado, el componente de vídeo de XMCA, Toobplayer que suaviza el vídeo cuando se escala pero no soy capaz de hacer que funcione con los subtítulos y la página del componente hace tiempo que fue olvidada, así que no hay acceso a la referencia del player.
Alguien ha usado alguna vez subtítulos con ese player? Alguna sugerencia de otro componente que pueda llevar subtítulos, suavice los vídeos y sea AS2
Gracias!
Código subtítulos:
Código :
////// Subs //////// //mc_subs._visible = false; subs._visible = false; mc_subs.gotoAndStop(1); _level2.subs_activos = 0; subs._visible = false; var aCaptions:Array; var my_flvPb:mx.video.FLVPlayback; var xmlCaptions:XML = new XML(); xmlCaptions.ignoreWhite = true; xmlCaptions.onLoad = function():Void { aCaptions = this.firstChild.childNodes; for(var i:Number = 0; i < aCaptions.length; i++) { Tiempo_temp=aCaptions[i].attributes.start; //trace("TIEMPO TEMP " + Tiempo_temp); //////////////////////// CONVERSIÓN A SEGUNDOS /////////////////// var Tiempo:Number = 0; var _timecodeDelineator:String = ":"; var splitArray:Array = Tiempo_temp.split( _timecodeDelineator ); //trace ("Array 0 "+ splitArray[0]); //trace ("Array 0 "+ splitArray[1]); //trace ("Array 0 "+ splitArray[2]); Tiempo += Number(splitArray[0]) * 3600; Tiempo += Number(splitArray[1]) * 60; Tiempo += Number(splitArray[2]); //trace ("tiempo en segundos "+ Tiempo); /////////////////////////////////////////////////////////////////// Nombre=aCaptions[i].attributes.name; //trace("Tiempo: "+Tiempo+" -- Nombre: "+Nombre) my_flvPb.addASCuePoint(Tiempo, Nombre); } }; var nombre_captions:String = "videos/captions_"+ _level2.archivo[indice]+".xml" trace ("el nombre del archivo captions es "+nombre_captions) xmlCaptions.load(nombre_captions); var nombre_video:String = "videos/video_"+ _level2.archivo[indice]+".flv" my_flvPb.contentPath = nombre_video; trace ("el nombre del archivo video es "+nombre_video) //cmpInstance.controllerPolicy = "on"; my_flvPb.addEventListener("cuePoint", onCuePoint); //this.createTextField("tCaptions", 2, cmpInstance.x, cmpInstance.y + cmpInstance.height, cmpInstance.width, 100); tCaptions.multiline = true; tCaptions.wordWrap = true; function onCuePoint(oEvent:Object):Void { var cuePointName = oEvent.info.name; //trace ("PUNTO DE SALTO: "+cuePointName) var texto=''; for(var i:Number=0; i<aCaptions.length; i++) { var Indice = aCaptions[i].attributes.name; //trace ("SALTO: "+cuePointName+" -- INDICE: "+Indice) if(Indice==cuePointName) { texto =aCaptions[i].firstChild.nodeValue; //trace (texto); } } if (texto == "_") { //trace("CERRAMOS EL PANEL") subs._visible = false; subs.tCaptions.text = ""; subs.tCaptions.setTextFormat(new TextFormat(null, null,0xFFFFFF)); } else { //trace("HAY QUE MOSTRARLO") //trace("ESTADO SUBS AL MOSTRAR: "+ _level2.subs_activos); if (_level2.subs_activos == 1) { //trace("ABRIMOS EL PANEL") subs._visible = true; } subs.tCaptions.text = texto; subs.tCaptions.setTextFormat(new TextFormat(null, null,0xFFFFFF)); } } var filterArray:Array = new Array();