示例#1
0
        public override PreparedData PrepareSite(UriExt url)
        {
            switch (url.QueryParam["op"])
            {
            default:
            case null: break;

            case "volume":
                var volumeStr = url.QueryParam["volume"];
                int volume;
                if (int.TryParse(volumeStr, out volume))
                {
                    audio.Volume = volume;
                }
                break;

            case "prev": playMgr.Previous(new InvokerData()); break;             // HACK: use token-system to determine user when its available

            case "play": audio.Pause = !audio.Pause; break;

            case "next": playMgr.Next(new InvokerData()); break;             // HACK: use token-system to determine user when its available

            case "loop": audio.Repeat = !audio.Repeat; break;

            case "seek":
                var    seekStr = url.QueryParam["pos"];
                double seek;
                if (double.TryParse(seekStr, out seek))
                {
                    var pos = TimeSpan.FromSeconds(seek);
                    if (pos >= TimeSpan.Zero && pos <= audio.Length)
                    {
                        audio.Position = pos;
                    }
                }
                break;
            }
            return(new PreparedData(0, new byte[0]));
        }