//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;
}
}