2009-07-06 14 views
0

私はFLVPlaybackコンポーネントにビデオをロードしました。私はこれまでに再生された合計時間と時間を取得し、2つのテキストフィールドに出力する方法を探しています。結果は "00:12/00:50 "となります。Flash Videoコンポーネントから再生された合計時間と時間を取得しますか?

今、私はコンポーネントインスペクタでビデオを定義していますが、私は最終的にこのビットをactionscriptでも定義したいと考えています。どんなヒントも大歓迎です。

答えて

1

あなたがここに時間を見つけることができます。 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html#playheadTime

そしてここに:あなたは簡単に時間を更新できるように http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html#totalTime

イベントもありますが、定期的に解雇: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html#event:playheadUpdate

編集:更新されたリンク

+1

もはやこれらのリンクは、私がリンクを更新した –

+0

を働きます。 –

+0

リンクが機能していません。実際のコード例を正しいものとして回答をマークする方が良いとは思わないでしょうか?彼らは明らかに長く続く! –

-1

I k今これは古い質問ですが、私はしばらく探していて答えを見つけていません。

FLVPlaybackコンポーネントを使用している場合でも、MetadataEventを使用して、FLV/F4Vファイルに埋め込まれているメタデータを取得できます。 AS3からFLVPlaybackインスタンスを作成し、MedataEvent.METADATA_RECEIVEDイベントをリッスンし、イベントが返すinfoプロパティにアクセスしました。コードでは、それは次のようになります。


package 
{ 
import fl.video.FLVPlayback; // you will need to drag the component to the stage, then delete it. This puts some stuff in the library and now you can access the class 
import fl.video.MetadataEvent; 
import flash.display.MovieClip; 

public class flvTest extends MovieClip 
{ 
private var inputURL:String = "./test.flv"; // change this to the location of your FLV/F4V 
private var player:FLVPlayback; 

public function flvTest():void 
{ 
player = new FLVPlayback(); 
// set x,y,width,height values if you want 
player.autoRewind = true; // I use this so when you press stop, it goes to the first frame 
player.load(inputURL); // you can use load() or source= 
player.addEventListener(MetadataEvent.METADATA_RECEIVED, getMetaFromFLV); 

addChild(player); 
} 

private var getMetaFromFLV(metadataEvent:MetadataEvent = null):void 
{ 
trace("FLV Duration: " + metadataEvent.info.duration); 
} 

} 
} 

あなたは明らかなど、いくつかのプレイヤーがコントロールを必要とするが、この回答へのキーはMetadataEventの一部です。 イベントが返すinfoプロパティには、FLV/F4Vビデオファイル内に埋め込まれているすべてのメタデータが含まれているため、取得できる他の多くの値があります。

(他の検索や投稿の多くは、NetStreamなどからメタデータを取得する方法を説明しています。これは、Flash Media Serverに接続する際に使用されます。ここでは、ローカルファイルにアクセスし、その中に埋め込まれているはずです)。

私はこれが誰かを助けてくれることを願っています!

1

時間を取得するには、次の書式設定については

 
flvPlayer.playheadTime;// gives you the current videp position 

:意図したとおりに

 
public static function formatTime(time:Number, detailLevel:uint = 2):String { 
    var intTime:uint = Math.floor(time); 
    var hours:uint = Math.floor(intTime/ 3600); 
    var minutes:uint = (intTime - (hours*3600))/60; 
    var seconds:uint = intTime - (hours*3600) - (minutes * 60); 
    var hourString:String = detailLevel == HOURS ? hours + ":":""; 
    var minuteString:String = detailLevel >= MINUTES ? ((detailLevel == HOURS && minutes = MINUTES)) ? "0":"") + seconds; 
    return hourString + minuteString + secondString; 
}