Advertisement
Guest User

Простейший OSMF-плеер

a guest
Jan 18th, 2011
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package ru.denivip.stats
  2. {
  3.     import flash.events.TimerEvent;
  4.     import flash.utils.Timer;
  5.    
  6.     import org.osmf.events.MediaElementEvent;
  7.     import org.osmf.media.MediaElement;
  8.     import org.osmf.traits.MediaTraitType;
  9.     import org.osmf.traits.TimeTrait;
  10.  
  11.     public class StatsTracker
  12.     {
  13.         private static var SERVER_HOST:String = 'shared.local';
  14.        
  15.         private static var SERVER_PORT:uint = 8125;
  16.        
  17.         private var media:MediaElement;
  18.        
  19.         private var timer:Timer;
  20.        
  21.         private var socket:StatsSocket;
  22.        
  23.         public function StatsTracker(media:MediaElement)
  24.         {
  25.             this.media = media;
  26.             this.timer = new Timer(500);
  27.             this.socket = new StatsSocket();
  28.            
  29.             timer.addEventListener(TimerEvent.TIMER, function (event:TimerEvent):void {
  30.                 checkPosition();
  31.             });
  32.            
  33.             media.addEventListener(MediaElementEvent.TRAIT_ADD, onTraitAdd);
  34.             media.addEventListener(MediaElementEvent.TRAIT_REMOVE, onTraitRemove);
  35.         }
  36.        
  37.         public function start():void
  38.         {
  39.             trace('start tracking');
  40.             socket.connect(SERVER_HOST, SERVER_PORT);
  41.             timer.start();
  42.         }
  43.        
  44.         public function stop():void
  45.         {
  46.             trace('do not track');
  47.             socket.close();
  48.             timer.stop();
  49.         }
  50.        
  51.         private function checkPosition():void
  52.         {
  53.             var time:TimeTrait = media.getTrait(MediaTraitType.TIME) as TimeTrait;
  54.             trace(time.currentTime);
  55.             socket.writeln(time.currentTime.toString());
  56.         }
  57.        
  58.         private function onTraitAdd(e:MediaElementEvent):void
  59.         {
  60.             trace(e.traitType + ' trait added');
  61.            
  62.             if (e.traitType == MediaTraitType.TIME) {
  63.                 start();
  64.             }
  65.         }
  66.        
  67.         private function onTraitRemove(e:MediaElementEvent):void
  68.         {
  69.             trace(e.traitType + ' trait removed');
  70.            
  71.             if (e.traitType == MediaTraitType.TIME) {
  72.                 stop();
  73.             }
  74.         }      
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement