2011-01-09 10 views
0

ここに私の使用例があります:ActionScript 3でNetStreamクラスのネットワークトラフィックを一時停止する方法はありますか?

私は小さな再生ビデオのセットを提示します。ユーザーが小さな動画のいずれかをクリックすると、小さな動画をすべて一時停止し、クリックされた動画のより高いビットレートの動画を読み込みます。

実際には遅く、一部のネットワーク診断では、ネットストリームでpause()を呼び出したにもかかわらず、すべての小さな動画がロードされ続けるという点を除いて、すべて正常に動作します。

私がしていると仮定します:

var nc:NetConnection = new NetConnection(); 
nc.connect (null); 

var ns1:NetStream = new NetStream(nc);   

var vid1:Video = new Video(WIDTH, HEIGHT); 
vid1.attachNetStream(ns1); 
ns1.play("video1.mp4"); 
stage.addChild(vid1); 

数秒で行く... VID1はまだロード、そして私がやりたいことのビデオストリームの両方を一時停止されているコードに言い直すする

VID1にも負荷VID1のネットワークトラフィックとして次のコードは、可能な限り迅速

ns1.pause(); 

var ns2:NetStream = new NetStream(nc); 
var vid2:Video = new Video(WIDTH, HEIGHT); 
vid2.attachNetStream(ns2); 
ns2.play("video2.mp4"); 
stage.addChild(vid2); 

...そしていくつかの時間後に、ユーザ却下VID2として実行することができますので、私はVID1の再生を再開するように

ns1.resume(); 

ns1にソケットの読み取りを停止するように指示する方法はありますか?私がns1.close()と呼ぶと、ns1.resume()で再生を再開できません。

ストリーミングプロトコルを使用する必要がある場合は、すべての小さな動画を読み込むときにハンドシェイクがどれくらいかかりますか?低ビットレート(50kbps)のビデオをすばやく読み込もうとしています。

ありがとうございます!

答えて

5

問題は、ムービーが再生していなくても読み込みを続けることです。 YouTubeで簡単に見ることができます:動画をクリックしてから一時停止するだけで、進行状況が増え続けます。

これを停止するには、一時停止時にNetStreamを閉じる方法はありません。わずかな遅延や次の隣接するキーフレームへのジャンプを受け入れても、最後の位置でムービーを続けることができます。ストリームに割り当てられているビデオオブジェクトには、新しいコンテンツがあるまで最後のフレームが表示されます。またはvideo.clear()最後の再生位置をns.timeで保存して、ns.seek()を使用して再接続した後で再生することができます。

+0

ありがとう、それはうまくいった! – jseims

+2

ようこそ。あなたは私に返済するためにこの答えを受け入れることができます...;) – weltraumpirat

関連する問題