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