Hello,
My video is black when using the new class Videotexture and Pseudo Streaming on Android Nexus 5
package{ import com.VideoT; import flash.display.Sprite; import flash.events.Event; import flash.display.StageAlign; import flash.display.StageScaleMode; import starling.core.Starling; public class Main extends Sprite { private var _starling:Starling = null; public function Main() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; addEventListener(Event.ADDED_TO_STAGE, init); } public function init(event:Event):void { removeEventListener(Event.ADDED_TO_STAGE, init); _starling = new Starling(VideoT, stage); _starling.antiAliasing = 1; _starling.showStats = true; _starling.start(); } } }
package com { import flash.display3D.Context3D; import flash.display3D.Context3DTextureFormat; import flash.display3D.textures.VideoTexture; import flash.events.VideoTextureEvent; import flash.net.NetConnection; import flash.net.NetStream; import starling.core.Starling; import starling.display.Image; import starling.display.Sprite; import starling.events.Event; import starling.textures.ConcreteTexture; import flash.events.NetStatusEvent; /** * Starling root Class * @author SzRaPnEL */ public class VideoT extends Sprite { private var vidClient:Object; private var cTexture:ConcreteTexture; private var vTexture:VideoTexture; private var nc:NetConnection; private var ns:NetStream; private var image:Image; private var context3D:Context3D; public function VideoT() { addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, init); core(); } private function core():void { context3D = Starling.context; vidClient = new Object(); vidClient.onMetaData = onMetaData; nc = new NetConnection(); nc.connect(null); ns = new NetStream(nc); ns.client = vidClient; ns.play("http://www.mysite.com/myvideo.mp4?start=50"); ns.addEventListener(NetStatusEvent.NET_STATUS, netstat); vTexture = context3D.createVideoTexture(); vTexture.attachNetStream(ns); vTexture.addEventListener(VideoTextureEvent.RENDER_STATE, renderFrame); cTexture = new ConcreteTexture(vTexture, Context3DTextureFormat.BGRA, 1024, 576, false, true, true); image = new Image(cTexture); addChild(image); } private function netstat(stats:NetStatusEvent):void { trace(stats.info.code); } private function renderFrame(e:VideoTextureEvent):void { // } private function onMetaData(metadata:Object):void { // } } }
It work on Windows but not on Android.
Thanks