SHARE
TWEET

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

a guest Jan 18th, 2011 189 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. }
RAW Paste Data
Top