快速业务通道

用ASP.NET读取Flash

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-12
   if(isCompressed) {
      ManagedZLib.ManagedZLib.Initialize();
      ManagedZLib.CompressionStream zlibStream = new ManagedZLib.CompressionStream(dataStream, ManagedZLib.CompressionOptions.Decompress);
      BinaryReader zlibReader = new BinaryReader(zlibStream);
      MemoryStream memoryStreamDecompressed = null;
      try {
       byte[] decompressedPart = new byte[fileLength - 8];
       zlibReader.Read(decompressedPart, 0, decompressedPart.Length);
       memoryStreamDecompressed = new MemoryStream(decompressedPart);
       ProcessCompressedPart(memoryStreamDecompressed);
      } finally {
       if(memoryStreamDecompressed != null)
        memoryStreamDecompressed.Close();
       zlibReader.Close();
       zlibStream.Close();
       ManagedZLib.ManagedZLib.Terminate();
      }
     } else
      ProcessCompressedPart(dataStream);
    } finally {
     dataStream.Close();
    }
   } finally {
    reader.Close();
    stream.Close();
   }
}

private void ProcessCompressedPart(MemoryStream stream) {
   BinaryReader reader = new BinaryReader(stream);
   try {
    byte[] rect;
    int nbits, totalBits, totalBytes;
    nbits = reader.ReadByte() >> 3;
    totalBits = nbits * 4 + 5;
    totalBytes = totalBits / 8;
    if(totalBits % 8 != 0)
     totalBytes++;
    reader.BaseStream.Seek(-1, SeekOrigin.Current);
    rect = reader.ReadBytes(totalBytes);
    frameRate = float.Parse(string.Format("{1}.{0}", reader.ReadByte(), reader.ReadByte()));
    frameCount = Convert.ToInt32(reader.ReadInt16());
    BitArray bits = new BitArray(rect);
    bool[] reversedBits = new bool[bits.Length];
    for(int i = 0 ; i < totalBytes ; i++) {
     int count = 7;
     for(int j = 8 * i ; j < 8 * (i + 1) ; j++) {
      reversedBits[j + count] = bits[j];
      count -= 2;
     }
    }
    bits = new BitArray(reversedBits);
    StringBuilder sbField = new StringBuilder(bits.Length);
    for(int i = 0 ; i < bits.Length ; i++)
     sbField

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号