actionscript-3 flex video air flex4.5

actionscript 3 - buscando no trabajar en flex 4.5 netStream byteArray



actionscript-3 video (2)

Creo que hay un problema al buscar byteArray construido después de leer el archivo. Simplemente ejecute netStream directamente, funciona:

var fileName:String = "dummy-video.flv"; ns.play(fileName);

Estoy tratando de reproducir un archivo de video flv en flex 4.5 con netStream byteArray. Lo que estoy haciendo es a continuación:

  1. Creando un netStream y un objeto de video
  2. Adjuntar un netStream con video
  3. Lectura de archivos flv en byteArray
  4. Añada byteArray en netStream usando el método "appendBytes"
  5. Reproducción de video

En este escenario, las funciones Play, Pause, Stop funcionan bien con el video.

Pero cuando estoy tratando de buscar en video, entonces no está funcionando.

Puede seguir el código de lo que estoy haciendo haciendo clic en el enlace http://pastebin.com/fZp0mKDs

¿Alguien puede decirme dónde estoy yendo mal para implementar la búsqueda?

Se apreciará cualquier muestra de código o cualquier tipo de ayuda.


Tengo, el código de abajo funcionó en mi caso

// onmetadata function get all timestamp and corresponding fileposition.. function onMetaData(informationObject:Object):void { for (var propertyName:String in informationObject) { if (propertyName == "keyframes") { var kfObject:Object = informationObject[propertyName]; var timeArray:Array = kfObject["times"]; var filePositionArray:Array = kfObject["filepositions"]; for(var i:int=0;i<timeArray.length;i++) { var tagPosition:int = filePositionArray[i];//Read the tag size; var timestamp:Number = timeArray[i];//read the timestamp; tags.push({timestamp:timestamp,tagPosition:tagPosition}); } } } } // onseek click get approximate timestamp and its fileposition protected function seek_click(seektime:Number):void { var currentTime:Number = 0; var previousTime:Number = 0; for (var i:int=1; i<tags.length; i++) { currentTime = tags[i].timestamp; previousTime = tags[i-1].timestamp; if(previousTime < seektime) { if(seektime < currentTime) { seekPos = tags[i-1].tagPosition; stream.seek(previousTime); break; } } } } // append bytes on seekposition private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Seek.Notify" : stream.appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK); totalfilePositionArray.position = seekPos; var bytes:filePositionArray = new filePositionArray(); totalfilePositionArray.readBytes(bytes); stream.appendBytes(bytes); stream.resume(); break; } }

Para inyectar fotogramas clave de MetaData en un archivo flv. Utilice alguna herramienta de inyección, fe. Inyector FLDA MetaData

http://www.buraks.com/flvmdi/