如何用.NET讀取 Flash格式文件信息_.Net教程
推薦:解析VC.NET擴(kuò)展Windows磁盤(pán)清理工具的功能摘 要 介紹了Windows磁盤(pán)清理工具二次開(kāi)發(fā)的擴(kuò)展接口,對(duì)其COM接口加以分解,并運(yùn)用ATL庫(kù)具體實(shí)現(xiàn)了清理“*.tmp”臨時(shí)文件的功能。 關(guān)鍵詞 磁盤(pán)清理工具、ATL庫(kù)、COM接口。
一直以來(lái)存在這么一個(gè)問(wèn)題,就是當(dāng)用戶(hù)上傳的Flash文件時(shí)都需要附帶輸入Flash的寬和高,否則顯示的時(shí)候由于不知道這些數(shù)值而導(dǎo)致Flash比例不正常。
近日我做網(wǎng)站也涉及到了這方面的問(wèn)題,于是打算解決一下。
首先在Google上搜索,可以找到獲取Flash寬和高的JavaScript,但是是在Flash載入后而不是之前,而且也沒(méi)法動(dòng)態(tài)更改object標(biāo)記的寬和高,最重要的是有Flash Player的安全警告信息,所以放棄了在客戶(hù)端讀取,轉(zhuǎn)而考慮服務(wù)器端。
在VS內(nèi)導(dǎo)入flash.ocx控件,試圖獲取Flash文件信息,結(jié)果在調(diào)用TGetProperty()方法是總是以返回E_FAIL錯(cuò)誤而失敗,如果哪位高手知道如何在.NET下使用,歡迎指明。
想來(lái)想去,只剩下一個(gè)辦法,也是最可行的辦法,就是直接讀取Flash文件并分析格式。
在Google上搜到 Macromedia Flash (SWF) File Format Specification Version 7 (http://www.xiaowowo.com/gt_book/new/flashfileformat.rar)
經(jīng)過(guò)反復(fù)閱讀和嘗試,最終寫(xiě)出了 FlashInfo 類(lèi),調(diào)用方法如下:
FlashInfo flashInfo = new FlashInfo(@"c:\test.swf"); // 構(gòu)造函數(shù),參數(shù)是Flash文件地址
Console.WriteLine(string.Format("Version: {0}", flashInfo.Version)); // Flash版本
Console.WriteLine(string.Format("Compressed: {0}", flashInfo.IsCompressed)); //是否被壓縮
Console.WriteLine(string.Format("Width: {0}", flashInfo.Width)); // Flash的寬度
Console.WriteLine(string.Format("Height: {0}", flashInfo.Height)); // Flash的高度
Console.WriteLine(string.Format("FrameRate: {0}", flashInfo.FrameRate)); // 幀速率
Console.WriteLine(string.Format("FrameCount: {0}", flashInfo.FrameCount)); // 總幀數(shù)
Console.WriteLine(string.Format("FileLength: {0}", flashInfo.FileLength)); // 未壓縮時(shí)的文件大小
自從Flash格式版本6以后,增加了可壓縮選項(xiàng),用的是ZLib壓縮,為了支持壓縮格式,只好又在Google上找了一個(gè)ZLib .NET Wrapper (http://zlibnetwrapper.sourceforge.net/)
FlashInfo 類(lèi)的源代碼和編譯好的庫(kù)文件提供給有同樣需求的朋友下載:http://down.mb5u.com
分享:淺析vc.net中配置OpenOffice的SDK應(yīng)用開(kāi)發(fā)在vc.net 2003下利用OpenOffice的SDK開(kāi)發(fā)應(yīng)用程序,其實(shí)很簡(jiǎn)單,看下面的配置方法。 需求軟件: MS Visual C Net 2003 OpenOffice SDK OpenOffice.org 2.1.x 或者更高版本 軟件下
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶(hù)端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 微軟新版開(kāi)發(fā)工具VS 2008 beta2功能定案
- 注意.NET中容易混淆的幾組重要概念
- 淺析微軟 ASP.NET 環(huán)境下的頁(yè)面驗(yàn)證控件
- 在ASP.NET ORACLE添加數(shù)據(jù)記錄并讓ID自動(dòng)增量
- 使用Ajax后,原來(lái)導(dǎo)出功能失敗的解決方法
- 解析.Net基礎(chǔ):C#中對(duì)DatagridView部分常用操作
- 解析ASP.NET MVC項(xiàng)目中視圖的單元測(cè)試
- 解讀 .NET開(kāi)發(fā)者常犯的錯(cuò)誤
- .NET 4.5 異步IO 相關(guān)實(shí)例
- 模板無(wú)憂(yōu):asp.net后臺(tái)cs中的JSON格式變量在前臺(tái)Js中調(diào)用方法
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-如何用.NET讀取 Flash格式文件信息。