Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.denivip.stats
- {
- import flash.events.TimerEvent;
- import flash.utils.Timer;
- import org.osmf.events.MediaElementEvent;
- import org.osmf.media.MediaElement;
- import org.osmf.traits.MediaTraitType;
- import org.osmf.traits.TimeTrait;
- public class StatsTracker
- {
- private static var SERVER_HOST:String = 'shared.local';
- private static var SERVER_PORT:uint = 8125;
- private var media:MediaElement;
- private var timer:Timer;
- private var socket:StatsSocket;
- public function StatsTracker(media:MediaElement)
- {
- this.media = media;
- this.timer = new Timer(500);
- this.socket = new StatsSocket();
- timer.addEventListener(TimerEvent.TIMER, function (event:TimerEvent):void {
- checkPosition();
- });
- media.addEventListener(MediaElementEvent.TRAIT_ADD, onTraitAdd);
- media.addEventListener(MediaElementEvent.TRAIT_REMOVE, onTraitRemove);
- }
- public function start():void
- {
- trace('start tracking');
- socket.connect(SERVER_HOST, SERVER_PORT);
- timer.start();
- }
- public function stop():void
- {
- trace('do not track');
- socket.close();
- timer.stop();
- }
- private function checkPosition():void
- {
- var time:TimeTrait = media.getTrait(MediaTraitType.TIME) as TimeTrait;
- trace(time.currentTime);
- socket.writeln(time.currentTime.toString());
- }
- private function onTraitAdd(e:MediaElementEvent):void
- {
- trace(e.traitType + ' trait added');
- if (e.traitType == MediaTraitType.TIME) {
- start();
- }
- }
- private function onTraitRemove(e:MediaElementEvent):void
- {
- trace(e.traitType + ' trait removed');
- if (e.traitType == MediaTraitType.TIME) {
- stop();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement