//ExternalIntarface.callでActionscriptから呼ばれる public void InvokeFromActionScript(string func, params string[] args) { switch (func) { case "Ready": OpenVideo(); break; case "CsFrame": //毎フレーム呼ばれる CsFrame(float.Parse(args[0]), float.Parse(args[1]), long.Parse(args[2]), args[3]); break; case "NetConnection.Connect.Closed": //RTMP動画再生時にタイムアウトになったら Owner.RTMPTimeOut(); break; case "ShowController": //マウスを動かしたら呼ばれる Owner.ShowFullScreenPopup(); break; case "HideController": //マウスを数秒動画の上で静止させたら呼ばれる Owner.HideFullScreenPopup(); break; case "Initialized": //動画が再生される直前に呼ばれる int vol = Settings.Instance.Volume; Owner.Volume = 0; //保存された値をFlash側に伝える Owner.Volume = vol; //保存された値をFlash側に伝える break; case "WidthHeight": Owner.VideoData.Resolution = args[0]; break; case "Bitrate": //Owner.VideoData.BitRate = args[0]; break; case "Framerate": Owner.VideoData.FrameRate = args[0]; break; case "FileSize": var size = double.Parse(args[0]); size /= 100000.0; size = Math.Floor(size) / 10; Owner.VideoData.FileSize = size.ToString() + "MB"; break; case "Stop": //動画が最後まで行ったらリピートしたりフルスクリーンから復帰したりする if (Owner.IsRepeat) { Restart(); } else if (Owner.IsFullScreen) { if (Owner.IsPlayList) { Owner.PlayListEntry.Owner.Next(); } else { Owner.ReturnFromFullScreen(); } } else { if (Owner.IsPlayList) { Owner.PlayListEntry.Owner.Next(); return; } Owner.IsPlaying = false; } break; case "Click": //Flash部分がクリックされた時に呼ばれる if (Settings.Instance.ClickOnPause) //クリックしたら一時停止する設定になっていたら { TogglePlay(); } break; case "MouseWheel": Console.WriteLine("Wheel:" + args[0]); Owner.Volume += int.Parse(args[0]); break; default: Console.WriteLine("Invoked From Actionscript:" + func); break; } }