Exemplo n.º 1
0
        /// <summary>
        /// Object callback
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void YTplayer_FlashCall(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FlashCallEvent e)
        {
            // message is in xml format so we need to parse it
            XmlDocument document = new XmlDocument();

            document.LoadXml(e.request);
            // get attributes to see which command flash is trying to call
            XmlAttributeCollection attributes = document.FirstChild.Attributes;
            String command = attributes.Item(0).InnerText;
            // get parameters
            XmlNodeList list = document.GetElementsByTagName("arguments");

            List <string> listS = (from XmlNode l in list select l.InnerText).ToList();

            // Interpret command
            switch (command)
            {
            case "onYouTubePlayerReady": YTready(listS[0]); break;

            case "YTStateChange": YTStateChange(listS[0]); break;

            case "YTError": YTStateError(listS[0]); break;

            case "document.location.href.toString": YTplayer.SetReturnValue("<string>http://www.youtube.com/watch?v=" + currentlyPlayingVideoId + "</string>"); break;

            default: Console.Write("YTplayer_FlashCall: (unknownCommand)\r\n"); break;
            }
        }
Exemplo n.º 2
0
        private string YTplayer_CallFlash(string ytFunction)
        {
            string        flashXMLrequest   = "";
            string        response          = "";
            string        flashFunction     = "";
            List <string> flashFunctionArgs = new List <string>();

            Regex func2xml = new Regex(@"([a-z][a-z0-9]*)(\(([^)]*)\))?", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            Match fmatch   = func2xml.Match(ytFunction);

            if (fmatch.Captures.Count != 1)
            {
                Console.Write("bad function request string");
                return("");
            }

            flashFunction   = fmatch.Groups[1].Value.ToString();
            flashXMLrequest = "<invoke name=\"" + flashFunction + "\" returntype=\"xml\">";
            if (fmatch.Groups[3].Value.Length > 0)
            {
                flashFunctionArgs = parseDelimitedString(fmatch.Groups[3].Value);
                if (flashFunctionArgs.Count > 0)
                {
                    flashXMLrequest += "<arguments><string>";
                    flashXMLrequest += string.Join("</string><string>", flashFunctionArgs);
                    flashXMLrequest += "</string></arguments>";
                }
            }
            flashXMLrequest += "</invoke>";

            try
            {
                Console.Write("YTplayer_CallFlash: \"" + flashXMLrequest + "\"\r\n");
                response = YTplayer.CallFunction(flashXMLrequest);
                Console.Write("YTplayer_CallFlash_response: \"" + response + "\"\r\n");
            }
            catch
            {
                Console.Write("YTplayer_CallFlash: error \"" + flashXMLrequest + "\"\r\n");
            }

            return(response);
        }