/as3/src/com/yourmajesty/videoplayer/YmVideoPlayer.as

https://github.com/krilo/YM-Videoplayer
ActionScript | 138 lines | 93 code | 34 blank | 11 comment | 8 complexity | 6970a74d1254d1cfd9be1457a86c95db MD5 | raw file
  1. package com.yourmajesty.videoplayer {
  2. import flash.text.TextField;
  3. import flash.external.ExternalInterface;
  4. import com.yourmajesty.videoplayer.views.VideoPlayer;
  5. import flash.events.Event;
  6. import flash.display.LoaderInfo;
  7. import flash.display.StageAlign;
  8. import flash.display.StageScaleMode;
  9. import flash.display.Sprite;
  10. import flash.system.Security;
  11. /**
  12. * @author kristofer
  13. */
  14. public class YmVideoPlayer extends Sprite {
  15. private static var instance :YmVideoPlayer = null;
  16. private var paramObj :Object;
  17. private var debugMode :Boolean;
  18. private var videoPlayer :VideoPlayer;
  19. private static function setInstance(inst : YmVideoPlayer) : Boolean {
  20. if(instance == null) {
  21. instance = inst;
  22. return true;
  23. }
  24. return false;
  25. }
  26. public static function getInstance() : YmVideoPlayer {
  27. return instance;
  28. }
  29. public function YmVideoPlayer() {
  30. if (setInstance(this)) {
  31. // Set scale
  32. stage.scaleMode = StageScaleMode.NO_SCALE;
  33. stage.align = StageAlign.TOP_LEFT;
  34. stage.addEventListener(Event.RESIZE, stageResize);
  35. flash.system.Security.allowDomain("*");
  36. // Catch Flashvars
  37. paramObj = LoaderInfo(this.root.loaderInfo).parameters;
  38. // Catch Debugmode
  39. debugMode = false;
  40. if(paramObj["debug"] == "true"){
  41. debugMode = true;
  42. }
  43. // Autoplay
  44. var autoplay:Boolean = false;
  45. if(paramObj["autoplay"] == "true"){
  46. autoplay = true;
  47. }
  48. // Init Videoplayer
  49. videoPlayer = new VideoPlayer();
  50. videoPlayer.init(paramObj["initWidth"],paramObj["initHeight"]);
  51. videoPlayer.load(paramObj["videoUrl"], autoplay);
  52. // Go go gadget VideoPlayer
  53. videoPlayer.smooth = true;
  54. addChild(videoPlayer);
  55. // Add event listeners
  56. ExternalInterface.addCallback("play", playVideo);
  57. ExternalInterface.addCallback("pause", pauseVideo);
  58. ExternalInterface.addCallback("setVolume", setVolume);
  59. ExternalInterface.addCallback("getState", getState);
  60. ExternalInterface.addCallback("getProgress", getProgress);
  61. ExternalInterface.addCallback("setProgress", setProgress);
  62. doResize();
  63. if (debugMode) {
  64. ExternalInterface.call( "console.log" , "Flash Video "+ paramObj["playerId"] +" is initiated");
  65. }
  66. ExternalInterface.call("ym.utils.videoPlayerReady", paramObj["playerId"]);
  67. }
  68. }
  69. private function playVideo():void
  70. {
  71. videoPlayer.resume();
  72. }
  73. private function pauseVideo():void
  74. {
  75. videoPlayer.pause();
  76. }
  77. private function setVolume(vol:Number):void
  78. {
  79. videoPlayer.setVolume(vol);
  80. }
  81. private function getState():String
  82. {
  83. return videoPlayer.getState();
  84. }
  85. private function getProgress():Number
  86. {
  87. return videoPlayer.getProgress();
  88. }
  89. private function setProgress(p:Number):void
  90. {
  91. videoPlayer.setProgress(p);
  92. }
  93. private function stageResize(e:Event):void
  94. {
  95. doResize();
  96. }
  97. private function doResize():void
  98. {
  99. //
  100. videoPlayer.width = stage.stageWidth;
  101. videoPlayer.width = stage.stageHeight;
  102. }
  103. }
  104. }