コード例 #1
0
ファイル: FlvReader.cs プロジェクト: eimslab/Shove.Net.Fx2
        /// <summary>
        /// Reads the tag.
        /// </summary>
        /// <returns></returns>
        private FlvBaseTag ReadTag()
        {
            FlvBaseTag resTag  = null;
            byte       tagType = br.ReadByte();

            switch (tagType)
            {
            case (byte)FlvTagCodeEnum.Audio: resTag = new FlvAudioTag(); break;

            case (byte)FlvTagCodeEnum.Video: resTag = new FlvVideoTag(); break;

            default: break;
            }

            resTag.ReadData(this.version, this.br);
            br.ReadUInt32();

            return(resTag);
        }
コード例 #2
0
ファイル: FlvReader.cs プロジェクト: eimslab/Shove.Net.Fx2
        /// <summary>
        /// Reads the FLV.
        /// </summary>
        /// <returns></returns>
        public Flv ReadFlv()
        {
            FlvHeader header = new FlvHeader();

            header.ReadData(br);
            this.version = header.Version;
            br.ReadUInt32();

            FlvBaseTagCollection tags = new FlvBaseTagCollection();

            while (br.BaseStream.Position < br.BaseStream.Length)
            {
                FlvBaseTag tag = ReadTag();
                if (tag != null)
                {
                    tags.Add(tag);
                }
            }

            return(new Flv(header, tags));
        }