私は基本的に、ビデオ通話用の Flex と netstream を使用して作業を開始しています。そのため、ネットストリームとストリーミングについて少し読むことができました。このコードを書いて、カメラを取得し、ストリームをビューの下のビデオ表示に公開しましたが、エラーなしですべてのメソッドを通過しても、表示はそうではありません表示されるので、何が起こっているのかよくわかりません。これが私がしたことです。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" creationComplete="start();">
<fx:Script>
import flash.media.Camera;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
import flash.events.AsyncErrorEvent;
import flash.events.NetStatusEvent;
import flash.net.NetStream;
import mx.graphics.ImageSnapshot;
import mx.graphics.codec.JPEGEncoder;
public var camera:Camera;
var video:Video;
public var myVideo:Video;
private var nc:NetConnection;
private var rtmpf:String="rtmfp://p2p.rtmfp.net/61c33c80be7022350a0dea3d-960194f988ba/";
private const DEVKEY:String = "61c33c80be7022350a0dea3d-960194f988ba";
public var in_ns:NetStream;
public var out_ns:NetStream;
public function start():void{
trace("Started the start function");
nc=new NetConnection();
nc.objectEncoding = ObjectEncoding.AMF0;
nc.client=this;
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.connect(rtmpf);
}
public function netStatusHandler(event:NetStatusEvent):void{
switch(event.info.code){
case "NetConnection.Connect.Success":
trace("Received the status");
initStart();
default:
trace( event.info.code);
}
}
public function initStart():void{
trace("Started the initstart function");
initNetStream();
initMyVideo();
publish();
playIt();
}
public function initNetStream():void{
trace("Started the initNetstream start function");
out_ns=new NetStream(nc);
out_ns.client=this;
in_ns=new NetStream(nc);
in_ns.client=this;
}
public function publish():void{
trace("Started the publish function");
camera=Camera.getCamera();
out_ns.attachCamera(camera);
out_ns.publish("Me", "live");
}
public function startCamera(muteCam:Boolean=false):void{
if(!video)
video = new Video();
trace("Started the startCamera function");
camera=Camera.getCamera();
if(muteCam){
video.attachCamera(camera);
//out_ns.attachCamera(camera);
//out_ns.publish("Me", "live");
vidHolder.addChild(video);
}else{
video.attachCamera(null);
if(contains(video))
vidHolder.removeChild(video);
//camera=null;
}
}
public function initMyVideo():void
{
trace("Started the initmyvideo function");
myVideo = new Video(230,160);
myVideo.x = 10;
myVideo.width = 230;
myVideo.height = 160;
myVideo.y = 30;
// myVid.addChild(myVideo);
}
public function playIt():void{
trace("Started the play it function");
myVideo.attachNetStream(in_ns);
in_ns.play("Me");
myVid.addChild(myVideo);
}
public function stopCamera():void{
vidHolder.removeChild(video);
}
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Button x="116" y="28" label="Start" click="startCamera(true)"/>
<s:VideoDisplay id="vidHolder" x="31" y="87" width="200" height="100"
/>
<s:VideoDisplay id="myVid" x="31" y="250"/>
<s:Button id="stop" x="208" y="28" label="Stop" click="startCamera(false)"/>
</s:Application>