Flex 3 に基づいて FLV ビデオ プレーヤーを実装しています。YouTube プレーヤーに似た機能を追加したいと考えています。
プログレスバーに、進行状況を表示するビデオだけでなく、ビデオのロードステータスも表示する必要があります。この動作を実装するにはどうすればよいですか?
2 つのプログレス バーを重ねて使用しますか? Flex mx: VideoDisplay コンポーネントも使用していますが、これを変更する必要がありますか?
Flex 3 に基づいて FLV ビデオ プレーヤーを実装しています。YouTube プレーヤーに似た機能を追加したいと考えています。
プログレスバーに、進行状況を表示するビデオだけでなく、ビデオのロードステータスも表示する必要があります。この動作を実装するにはどうすればよいですか?
2 つのプログレス バーを重ねて使用しますか? Flex mx: VideoDisplay コンポーネントも使用していますが、これを変更する必要がありますか?
はい、laodingbarを配置する背景に2つのバーを重ねて配置し、Frontに現在の位置バーを配置する必要があります。
しかし最後に、これは完全に機能させるために見た目よりも少し手間がかかります...すべてのバー/スライダー機能を実装する新しいクラスを作成します。
Laoderは、update(val)をリッスンして、新しい値をパーセンテージに設定するだけです。プレイバーには、シークのためのクリックとマウスダウン/マウスダウンの機能と、ユーザーの操作後にプレーヤーでシークをトリガーするイベントなど、更新機能を再度設定する必要があります。
次に、ローディングバーの更新をプレーヤーの進行状況イベントにバインドします。すべてのイベントはここにあります
//setting up loadingbar
player.addEventListener(ProgressEvent.PROGRESS,slider_update);
//function to update the slider
private function slider_update(E:ProgressEvent):void{
var percentage:float = 0;
if(E.bytesTotal != 0){
E.bytesLoaded/E.bytesTotal
}
slider.update(percentage)
}
現在のプレイバーではほとんど同じです
//listens to statechanges of the player to handle updates for cur-pos
player.addEventListener(VideoEvent.PLAYHEAD_UPDATE, checkStatechange);
private function checkStatechange(E:VideoEvent):void{
if(player.totalTime!=0){
timeSlider.update(E.playheadTime/E.totalTime);
};
クリック時にバインドを続行して、すぐにシークを設定します-mouseDownに移動し、ビデオのスクロールを可能にするために移動します...実際には、mousedownを使用したシークの場合、mousemoveはステージでリッスンする必要があるため、mouseUpを指定しない場合、ユーザーはローディングバーに留まる必要がありますこれを求めている間、ほとんどの場合、処理することはほとんど不可能です;)-楽しんでください}