2014-01-23 38 views
2

TL DR版本:如何使用NetStream onSeekPoint事件構建查找點表?ActionScript 3 NetStream onSeekPoint如何到

下面的全部問題。 情況:在數據生成模式下flv流播放視頻播放器,即NetStream.play(null),然後是NetStream.appendBytes(字節:ByteArray)。這樣做,您只能在視頻的特定點(所謂的「標籤」或「搜索點」)尋找。如果你不知道我在說什麼,請參閱seeking not working in flex 4.5 netStream byteArray

因此,如果您可以從onMetaData事件構建標籤表,如上面的鏈接所述,一切正常。但是,從理論上講,如果您的視頻文件沒有元數據(由於某些原因,您不能使用注入工具預處理注入元數據的文件,如上面的鏈接所示),您應該可以構建標籤表「對飛」用的NetStream將onSeekPoint事件:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#event:onSeekPoint(...「使用此事件構造搜索點表」) [在土坯頁面頂部留意過濾器,它們可能隱藏屬性和功能...!]

問題:onSeekPoint解釋得很差。 它說:「byteCount對應於該查找點的可解析消息的第一個字節處的字節數,並且如上所述被重置爲零。」 那麼,上面(其中?!)沒有任何描述,並且「byteCount」根本沒有定義(這是整個頁面中「byteCount」的唯一兩個實例!)。

我發現(見onSeekPoint weirdness - 例如1),該處理器將onSeekPoint接收兩個對象,只是兩個int,0和1

那我應該到現在?

我沒有發現任何其他的主題,希望有人可以幫助,謝謝。

我忘記了:試圖讀取onSeekPoint事件時,NetStream.time和NetStream.bytesLoaded(「已加載到應用程序中的數據的字節數」)是無用的,因爲bytesLoaded始終爲0(我想這是該數據生成模式的另一個「無證功能」 - 好工作的Adobe)

回答

0

您需要使用以下方法:!

 public function onSeekPoint(time:Number,position:uint):void 
     { 
      var data:Object=new Object(); 
      data.time=time; 
      data.position=position; 

      seekPoint_arrC.addItem(data); 
     } 

seekPoint_arrC是「ArrayCollection的」對象。

+0

我無法驗證,如果這項工作,但感謝你們兩個。 – creative