1

そのため、ネットストリーム ビデオをロードするときに AS2 で問題が発生しています。

my_vid = _root.createEmptyMovieClip("my_vid", _root.getNextHighestDepth());
var video:Video = new Video();
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
video.attachVideo(ns);
my_vid.attachVideo(video);

and later 
ns.play("http://localhost/video.mp4");

バックグラウンドで実際に音声を聞くことはできますが、何らかの理由で画像が表示されません。ムービークリップなしでビデオのみを試してみましたが、その逆でオーディオだけを聞き続けました。

私は間違いなく何か間違ったことをしていますが、何ですか?

4

1 に答える 1

1

問題は、ビデオ オブジェクトをステージにアタッチしないことです。my_vid.attachVideo(video);MovieClip には というメソッドがないため、この行は何もしませんattachVideo

ライブラリにビデオ オブジェクトを作成し、ステージに追加する必要があります。これを行うには、IDE で次の手順に従います。

  1. ライブラリ パネルの右上にある矢印をクリックしNew Video...、ドロップダウンから選択します。
  2. ダイアログ ボックスで、Video (ActionScript-controlled)ラジオ ボタンを選択し、[OK] をクリックします。
  3. 新しく作成したビデオ オブジェクトをステージにドラッグし、インスタンス名 (例: myVideo) を付けます。
  4. ステージでビデオ オブジェクトを選択し、F8 キーを押して、そこから新しいシンボルを作成します。
  5. シンボルを MovieClip に設定し、[ActionScript にエクスポート] チェックボックスをオンにして、識別子 (例: videoContainer) を指定し、[OK] を押します。
  6. ステージからシンボルを削除し、ライブラリに保持します。

これで、コードを使用して添付できるアイテムがライブラリに作成されました。このアイテムには、すぐに使用できるビデオ オブジェクトが既に含まれています。上記と同じ名前を使用したと仮定すると、コードは次のように変更する必要があります。

//attach the container from the library
my_vid = _root.attachMovie("videoContainer", "my_vid" _root.getNextHighestDepth());
//create a reference to the video object inside the container
var video:Video = my_vid.myVideo;
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
video.attachVideo(ns);
//
// ...
//
ns.play("http://localhost/video.mp4");
于 2011-11-15T10:17:12.310 に答える