示例#1
0
        public void readKukaAudioFromSample2(string url)
        {
            XmlReaderSettings settings = new XmlReaderSettings();

            settings.IgnoreWhitespace = true;
            //settings.ConformanceLevel = ConformanceLevel.Fragment;

            bool firstCall = true;

            double time_old = 0;
            double time_new = 0;

            using (XmlReader xmlReader = XmlReader.Create(url, settings))
            {
                MTCValue tmpMTCValue = new MTCValue();


                while (true)
                {
                    xmlReader.ReadToFollowing("SoundLevel");

                    if (xmlReader.GetAttribute("timestamp") == null)
                    {
                        break;
                    }

                    tmpMTCValue.idx    = Convert.ToInt32(xmlReader.GetAttribute("sequence"));
                    tmpMTCValue.name   = xmlReader.GetAttribute("name");
                    tmpMTCValue.tStamp = xmlReader.GetAttribute("timestamp");
                    xmlReader.Read();   // read value

                    if (xmlReader.Value == "UNAVAILABLE")
                    {
                        continue;
                    }

                    tmpMTCValue.value = Convert.ToDouble(xmlReader.Value);

                    queue.Enqueue(tmpMTCValue);

                    time_new = tmpMTCValue.toSec();

                    if (firstCall)
                    {
                        time_old  = time_new;
                        firstCall = false;
                    }
                    //Console.WriteLine("time_old={0} time_new={1} time_diff={2}", time_old, time_new, time_new - time_old);
                    if (time_new - time_old > 10)
                    {
                        break;
                    }
                }
            }
        }