2
안녕하세요,비디오 스트림 액션 스크립트 3 복제하기
저는 스트리밍을 위해 CRTMP 서버를 사용하는 비디오 클래스 작업을하고 있습니다. 이 잘 작동하지만 내 솔루션에 대한 일부 효과) 비디오 스트림을 복제해야합니다.
중복 된 MovieClips를 검색하여 이와 같은 비디오를 복제하려고했습니다.
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.media.*;
import flash.system.*;
import flash.utils.ByteArray;
public class Main extends MovieClip
{
public var netStreamObj:NetStream;
public var nc:NetConnection;
public var vid:Video;
public var vid2:Video;
public var streamID:String;
public var videoURL:String;
public var metaListener:Object;
public function Main()
{
init_RTMP();
}
private function init_RTMP():void
{
streamID = "szene3.f4v";
videoURL = "rtmp://213.136.73.230/maya";
vid = new Video(); //typo! was "vid = new video();"
vid2 = new Video();
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, onConnectionStatus);
nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
nc.client = {onBWDone: function():void
{
}};
nc.connect(videoURL);
}
private function onConnectionStatus(e:NetStatusEvent):void
{
if (e.info.code == "NetConnection.Connect.Success")
{
trace("Creating NetStream");
netStreamObj = new NetStream(nc);
metaListener = new Object();
metaListener.onMetaData = received_Meta;
netStreamObj.client = metaListener;
netStreamObj.play(streamID);
vid.attachNetStream(netStreamObj);
//vid2.attachNetStream(netStreamObj); // wont work
addChild(vid);
// addChild(vid2); // wont work either
//intervalID = setInterval(playback, 1000);
}
}
private function asyncErrorHandler(event:AsyncErrorEvent):void
{
trace("asyncErrorHandler.." + "\r");
}
private function received_Meta(data:Object):void
{
var _stageW:int = stage.stageWidth;
var _stageH:int = stage.stageHeight;
var _videoW:int;
var _videoH:int;
var _aspectH:int;
var Aspect_num:Number; //should be an "int" but that gives blank picture with sound
Aspect_num = data.width/data.height;
//Aspect ratio calculated here..
_videoW = _stageW;
_videoH = _videoW/Aspect_num;
_aspectH = (_stageH - _videoH)/2;
vid.x = 0;
vid.y = _aspectH;
vid.width = _videoW;
vid.height = _videoH;
vid2.x = 0;
vid2.y = _aspectH ;
}
}
비디오 스트림을 복제 할 수 있어야합니다. 2 동일한 videoStream의 인스턴스. 내가 도대체 뭘 잘못하고있는 겁니까 ?
도움 주셔서 감사합니다.
가장 쉬운 가능한 방법이 내가 NetStream을 두 배로해야 함을 의미 플레이어 클래스 – www0z0k
의 두 인스턴스를 만드는 것입니다. 이것은 내가 원하는 것이 아닙니다. 나는 이것을하려고 애썼지 만 비디오는 동기가 아니었다. 다른 생각? – Glowhollow
Bitmap.clone 당 비디오를 복제하려고했습니다. 하지만 샌드 박스 위반이 있습니다. 어떤 아이디어? 내 스스로 조사하려고 ...하지만 도움이 정말 감사합니다 :) – Glowhollow