XML : Why my player can't play video when XML store 2 data in Adobe Air AS3?

I'm making an android app using Adobe AIR AS3. My program works fine and the video can play when I have only 1 data on XML. But when I have 2 or more data, I can't play the video, even when the image loaded just fine. Is there anything that I missed on my program? Here is the entire my AS3 script and my xml data.

  import flash.events.MouseEvent;  import flash.media.Video;  import flash.display.MovieClip;  import flash.net.NetConnection;  import flash.net.NetStream;  import flash.events.NetStatusEvent;  import flash.events.AsyncErrorEvent;  import flash.ui.Mouse;  import flash.media.SoundTransform;  import flash.geom.Rectangle;    stage.scaleMode=StageScaleMode.NO_SCALE;  stage.align=StageAlign.TOP_LEFT;  stage.displayState=StageDisplayState.FULL_SCREEN;  FilterShortcuts.init();    stop();    var mainBtn:MovieClip = btnMain;  var helpBtn:MovieClip = btnHelp;  var exitBtn:MovieClip = btnExit;      var mainPage:MovieClip = mcMainMenu;      var logoIcon:MovieClip = mcIcon;      var contentPage:MovieClip = mcContent;      var videoBox:MovieClip = mcContent.mcVideoArea;      var playBtn:MovieClip = mcContent.btnPlay;      var pauseBtn:MovieClip = mcContent.btnPause;      var timelineSlider:MovieClip = mcContent.mcTimelineSlider;      var timelineBuffer:MovieClip = mcContent.mcTimelineSlider.mcTimelineBuffer;      var timelineProgress:MovieClip = mcContent.mcTimelineSlider.mcTimelineProgress;      var timelineBtn:MovieClip = mcContent.mcTimelineSlider.btnTimeline;  var volumeSlider:MovieClip = mcContent.mcVolumeSlider;      var volumeBtn:MovieClip = mcContent.mcVolumeSlider.btnVolume;      var volumeActive:MovieClip = mcContent.mcVolumeSlider.mcVolumeActive;     var helpPage:MovieClip = mcHelpPage;  var backBtn:MovieClip = mcHelpPage.btnCancel;     var exitPage:MovieClip = mcExitPage;  var yesBtn:MovieClip = mcExitPage.btnYes;  var noBtn:MovieClip = mcExitPage.btnNo;   mainPage.visible=true;  logoIcon.visible=true;  contentPage.visible=false;  mainBtn.visible=false;  helpPage.visible=false;  exitPage.visible=false;  var currentVideo:String;  var videoWidth:Number=1280;  var videoHeight:Number=720;  var duration:Number;  var video:Video=new Video(videoWidth, videoHeight);  video.x=-640;  video.y=-360;  videoBox.addChild(video);  var nc:NetConnection=new NetConnection();  nc.connect(null);  var ns:NetStream=new NetStream(nc);  video.attachNetStream(ns);  var newMeta:Object=new Object();  newMeta.onMetaData=onMetaData;  ns.client=newMeta;  ns.bufferTime=5;  var videoSound=SoundTransform;  var volumeBounds:Rectangle;  videoSound=new SoundTransform();  videoSound.volume=.5;  ns.soundTransform=videoSound;  var videoInterval=setInterval(videoStatus, 100);  var amountLoaded:Number;  var scrubInterval;  var mcContainer:MovieClip;  var xmlPath:String="list.xml";  var xml:XML;  var loader=new URLLoader();  var currentThumb:Number=0;  var i:Number=0;  var videoThumbLoader:Loader;  var videoItemName:String;  var columns:Number=6;  var xCount:Number;  var yCount:Number;    mainBtn.addEventListener(MouseEvent.CLICK, gotoMain);  helpBtn.addEventListener(MouseEvent.CLICK, gotoHelp);  exitBtn.addEventListener(MouseEvent.CLICK, gotoExit);     backBtn.addEventListener(MouseEvent.CLICK, goBack);  yesBtn.addEventListener(MouseEvent.CLICK, exitApp);  noBtn.addEventListener(MouseEvent.CLICK, goBack);  ns.addEventListener(NetStatusEvent.NET_STATUS, myStatusHandler);  playBtn.addEventListener(MouseEvent.CLICK,playBtnClick);  pauseBtn.addEventListener(MouseEvent.CLICK,pauseBtnClick);  volumeBtn.addEventListener(MouseEvent.MOUSE_DOWN,volumeScrubberDown);  timelineBtn.addEventListener(MouseEvent.MOUSE_DOWN, videoScrubberDown);  loader.load(new URLRequest(xmlPath));  loader.addEventListener(Event.COMPLETE,xmlLoaded);    function gotoMain(e:MouseEvent):void{  mainPage.visible=true;      logoIcon.visible=true;    contentPage.visible=false;      mainBtn.visible=false;  flash.media.SoundMixer.stopAll();  }  function gotoHelp(e:MouseEvent):void{  helpPage.visible=true;  ns.pause();  }  function goBack(e:MouseEvent):void{  helpPage.visible=false;  exitPage.visible=false;  ns.resume();  }  function gotoExit(e:MouseEvent):void{  helpPage.visible=false;  exitPage.visible=true;  ns.pause();  }  function exitApp(e:MouseEvent):void{  NativeApplication.nativeApplication.exit();  }    function myStatusHandler(e:NetStatusEvent):void{  //trace(e.info.code);  switch(e.info.code){      case "NetStream.Buffer.Full":          ns.bufferTime=10;      break;      case "NetStream.Buffer.Empty":          ns.bufferTime=10;      break;      case "NetStream.Play.Start":          ns.bufferTime=10;      break;      case "NetStream.Seek.Notify":          ns.bufferTime=10;      break;      case "NetStream.Seek.InvalidTime":          ns.bufferTime=10;      break;      case "NetStream.Play.Stop":          ns.pause();          ns.seek(1);      break;  }  }  function onMetaData(newMeta:Object):void{  //trace("Metadata:duration="+newMeta.duration+" width="+newMeta.width+" height="+newMeta.height+" framerate"+newMeta.framerate);  duration=newMeta.duration;  }    function playBtnClick(e:MouseEvent):void{  ns.resume();  }  function pauseBtnClick(e:MouseEvent):void{  ns.pause();  }    function volumeScrubberDown(e:MouseEvent):void{  volumeBounds=new Rectangle(0,0,169,0);  volumeBtn.startDrag(false,volumeBounds);  stage.addEventListener(MouseEvent.MOUSE_UP,volumeBtnUp);  stage.addEventListener(MouseEvent.MOUSE_MOVE,volumeBtnMove);  }  function volumeBtnUp(e:MouseEvent):void{  volumeBtn.stopDrag();  stage.removeEventListener(MouseEvent.MOUSE_UP, volumeBtnUp);  stage.removeEventListener(MouseEvent.MOUSE_MOVE, volumeBtnMove);  }  function volumeBtnMove(e:MouseEvent):void{  volumeActive.width=volumeBtn.x;  videoSound.volume=(volumeBtn.x)/50;  ns.soundTransform=videoSound;  }    function videoStatus():void{  amountLoaded=ns.bytesLoaded/ns.bytesTotal;  timelineBuffer.width=amountLoaded*900;  timelineBtn.x=ns.time/duration*900;  timelineProgress.width=timelineBtn.x;  }  function videoScrubberDown(e:MouseEvent):void{  var bounds:Rectangle=new Rectangle(0,0,900,0);  clearInterval(videoInterval);  scrubInterval=setInterval(scrubTimeline,10);  timelineBtn.startDrag(false,bounds);  stage.addEventListener(MouseEvent.MOUSE_UP,stopScrubbingVideo);  }  function scrubTimeline():void{  ns.seek(Math.floor((timelineBtn.x/900)*duration));  }  function stopScrubbingVideo(e:MouseEvent):void{  stage.removeEventListener(MouseEvent.MOUSE_UP,stopScrubbingVideo);  clearInterval(scrubInterval);  videoInterval=setInterval(videoStatus,100);  timelineBtn.stopDrag();  }    function xmlLoaded(e:Event):void{  if((e.target as URLLoader)!=null){      xml = new XML(loader.data);      loader.removeEventListener(Event.COMPLETE, xmlLoaded);      makeVideoThumb();      //trace(xml);  }  }  function makeVideoThumb():void{  xCount=0;  yCount=0;  mcContainer=new MovieClip();  mcContainer.x=-600; //set the container x position  mcContainer.y=-255; //set the container y position  mainPage.addChild(mcContainer);  if(i>0){      i=0;  }  for each(var videoNode:XML in xml.content){      var videoItem:mc_thumbContainer=new mc_thumbContainer();          videoItem.txtVideoTitle.text=videoNode.@title;          videoItem.txtVideoCountry.text=videoNode.@country;          videoItem.x=(videoItem.width+30)*xCount;          videoItem.y=(videoItem.height+30)*yCount;          videoItem.name=""+i;          videoItem.addEventListener(MouseEvent.CLICK, videoItemClick);      var videoThumbURL=videoNode.@cover;          videoThumbLoader=new Loader();                    videoThumbLoader.load(new URLRequest(videoThumbURL));          videoThumbLoader.x=6;          videoThumbLoader.y=5;          videoItem.addChild(videoThumbLoader);      videoThumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, videoThumbLoaded);      mcContainer.addChild(videoItem);      i++;      if(xCount+1<columns){          xCount++;      }else{          xCount=0;          yCount++;      }  }  }  function videoThumbLoaded(e:Event):void{  videoThumbLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, videoThumbLoaded);     }  function videoItemClick(e:MouseEvent):void{  videoItemName=e.target.name;  currentVideo=xml.konten.@video;  mainPage.visible=false;      logoIcon.visible=false;  contentPage.visible=true;      mainBtn.visible=true;  video.width=videoWidth;  video.height=videoHeight;  ns.play(currentVideo);  }    

And here is the xml

  <?xml version="1.0"?>  <list>    <content id="1" title="story" country="England" cover="http://localhost:280/list//content/cover/6a778-cover-72.jpg" video="http://localhost:280/list//content/video/e27f9-video.mp4"/>    <content id="2" title="story-2" country="England" sampul="http://localhost:280/list//content/cover/2e383-cover-72.jpg" video="http://localhost:280/list//content/video/cce76-video.mp4"/>        </list>    

No comments:

Post a Comment