home *** CD-ROM | disk | FTP | other *** search
/ i·claim - visualizing argument / ICLAIM.ISO / pc / gloss.swf / scripts / __Packages / mx / controls / streamingmedia / PlayerNetStream.as < prev    next >
Encoding:
Text File  |  2005-02-26  |  2.9 KB  |  116 lines

  1. class mx.controls.streamingmedia.PlayerNetStream extends NetStream
  2. {
  3.    var _player;
  4.    var detectedFirstBuffer;
  5.    var initId;
  6.    var checkSizeInterval;
  7.    function PlayerNetStream(nc, aPlayer)
  8.    {
  9.       super(nc);
  10.       this.setPlayer(aPlayer);
  11.    }
  12.    function getPlayer()
  13.    {
  14.       return this._player;
  15.    }
  16.    function get player()
  17.    {
  18.       return this.getPlayer();
  19.    }
  20.    function setPlayer(aPlayer)
  21.    {
  22.       this._player = aPlayer;
  23.    }
  24.    function set player(aPlayer)
  25.    {
  26.       this.setPlayer(aPlayer);
  27.    }
  28.    function pause(shouldPause)
  29.    {
  30.       super.pause(shouldPause);
  31.    }
  32.    function setBufferTime(time)
  33.    {
  34.       super.setBufferTime(time);
  35.    }
  36.    function play(name, st, len, reset)
  37.    {
  38.       super.play(name,st,len,reset);
  39.    }
  40.    function seek(offset)
  41.    {
  42.       super.seek(offset);
  43.    }
  44.    function close()
  45.    {
  46.       super.close();
  47.    }
  48.    function attachAudio(theMicrophone)
  49.    {
  50.       super.attachAudio(theMicrophone);
  51.    }
  52.    function attachVideo(theCamera, snapshotMilliseconds)
  53.    {
  54.       super.attachVideo(theCamera,snapshotMilliseconds);
  55.    }
  56.    function onStatus(info)
  57.    {
  58.       var _loc2_ = this.getPlayer();
  59.       switch(info.code)
  60.       {
  61.          case "NetStream.Buffer.Full":
  62.             break;
  63.          case "NetStream.Play.Start":
  64.             this.detectedFirstBuffer = false;
  65.             clearInterval(this.initId);
  66.             this.checkSizeInterval = 10;
  67.             this.initId = setInterval(this,"detect",this.checkSizeInterval);
  68.             break;
  69.          case "NetStream.Pause.Notify":
  70.             break;
  71.          case "NetStream.Play.Stop":
  72.             clearInterval(this.initId);
  73.             _loc2_.playStopped();
  74.             break;
  75.          case "NetStream.Play.Failed":
  76.          case "NetStream.Play.StreamNotFound":
  77.             var _loc3_ = undefined;
  78.             _loc3_ = "Error playing URL: " + info.description;
  79.             _loc2_.logError(_loc3_);
  80.             break;
  81.          case "NetStream.Seek.Notify":
  82.             _loc2_.setSeeking(false);
  83.       }
  84.    }
  85.    function detect()
  86.    {
  87.       var _loc2_ = this.getPlayer();
  88.       if(!this.detectedFirstBuffer && _loc2_.isSizeSet())
  89.       {
  90.          this.detectedFirstBuffer = true;
  91.          _loc2_.bufferIsFull();
  92.       }
  93.       if(_loc2_.isSizeChange())
  94.       {
  95.          _loc2_.resizeVideo();
  96.       }
  97.       clearInterval(this.initId);
  98.       this.checkSizeInterval *= 2;
  99.       this.initId = setInterval(this,"detect",this.checkSizeInterval);
  100.    }
  101.    function onMetaData(info)
  102.    {
  103.       var _loc2_ = this.getPlayer();
  104.       if(_loc2_ instanceof mx.controls.streamingmedia.FLVPlayer)
  105.       {
  106.          var _loc3_ = _loc2_;
  107.          _loc3_.setTotalTime(info.duration);
  108.       }
  109.       else if(_loc2_ instanceof mx.controls.streamingmedia.RTMPPlayer)
  110.       {
  111.          var _loc4_ = _loc2_;
  112.          _loc4_.setTotalTime(info.duration);
  113.       }
  114.    }
  115. }
  116.