2009-12-10 58 views

回答

4

您是針對Flash Player 10單獨還是更低版本?由於較低版本的Flash播放器(9等)不允許上傳的SWF讀取文件內容(除創建日期,創建者(文件的Macintosh創建者類型),修改日期,名稱,大小(字節和類型)),所以你無法在這些球員身上做到這一點。

如果你的目標僅僅FP10的用戶,可以load的FLV到您的SWF一個ByteArray

  1. 使用FLV播放器播放,並宣讀了球員的時間屬性。但是我找不到一個以ByteArray作爲輸入的FLV播放器 - 在閱讀完SO後的this thread後,似乎根本不可能。
  2. 解析FLV文件,並從其元數據中讀取duration屬性。 FLV file specification已開放,但這並不容易。

更新到註釋:從FLV文件規範
摘錄:

調用onMetaData
FLV文件可以包含有「調用onMetaData」標記的元數據。通過NetStream.onMetaData屬性,運行的ActionScript程序可以使用各種流屬性 。 可用的屬性因使用的軟件而異。
共同屬性包括:

  • duration:一個DOUBLE指示文件的以秒計的總的持續時間
  • width:一個DOUBLE指示像素
  • height視頻的寬度:一個DOUBLE指示以像素爲單位的視頻高度
  • videodatarate:一個DOUBLE表示以千比特/秒爲單位的視頻比特率
  • framerate:一個DOUBLE表示每秒鐘
  • videocodecid幀數:一個DOUBLE指示文件中所使用的視頻編解碼器ID(參見第8頁上的「視頻 標籤」爲可用的CodecID標註值)
  • audiosamplerate:一個DOUBLE指示在該音頻流是 重放
  • audiosamplesize頻率:一個DOUBLE表示單一音頻樣本的分辨率
  • stereo:一個BOOL指示數據是否是立體聲
  • audiocodecid :一個DOUBLE指示文件中所使用的音頻編解碼器ID(見第6頁上的「音頻 標籤」爲可用的SoundFormat值)
  • filesize:一個DOUBLE指示以字節爲單位
的文件的總大小

FLV文件可以包含元數據 - 它不會說它將包含元數據。它還表示,可用的屬性可能因用於創建FLV的軟件而異。所以我想沒有保證(根據規格)duration財產將存在。也就是說,duration是FLV的基本屬性之一,假設任何合理的軟件都會包含它,這將是安全的。

+0

非常感謝,幫助了很多。我想知道當長度的元數據不存在時他們是否可以成爲案例。你有沒有遇到過這種情況,或者我可以安全地假設數據總是可用的? – Chin 2009-12-10 09:41:05

+0

再次感謝您的幫助。如果你需要任何兼職flex或.net工作讓我知道。 – Chin 2009-12-10 11:17:46

1

您可以使用Netstream.appendBytes在用於播放視頻的NetStream中將FileReference.data(在呼叫上傳之前的呼叫瀏覽之後)提供給NetStream。從那裏,持續時間可以從元數據中獲取,如本主題其他地方所述。請注意,此方法至少需要Flash Player 10。

相關問題