0
我正在尝试通过网络摄像头捕获视频并使用AIR将其转换为RTMP流。但我无法找到像这样的任何示例。是否有任何方法可以这样做?请给我一些例子来实现这一点。我是ActionScript的新手,我在ActionScript中做过,我已经看到ActionScript中的Camera api,但它不起作用可能是我错误地实现。使用Adobe AIR捕获和流视频
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
title="Hello Air Appp" >
<s:Label text="Hello AIR" />
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
s|WindowedApplication
{
skinClass:ClassReference("spark.skins.spark.SparkChromeWindowedApplicationSkin");
background-color:#999999;
background-alpha:"0.7";
}
</fx:Style>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
private var connection:NetConnection;
private var outStream:NetStream;
//device properties
private var camera:Camera;
private var microphone:Microphone;
//video properties
private var outVideo:Video;
protected function application1_creationCompleteHandler(event:FlexEvent):void {
trace("In the frst fn");
connection = new NetConnection();
connection.connect("rtmp://0.0.0.0/TestApp");
connection.addEventListener(NetStatusEvent.NET_STATUS, onConnected);
}
private function onConnected(event:NetStatusEvent):void {
if(event.info.code == "NetConnection.Connect.Success") {
setupVideo();
}
}
private function setupVideo():void {
//setup outgoing devices
if (Camera.names.length > 0) {
var camera:Camera = Camera.getCamera(); // Get default camera.
}
else
trace("No Cameras Found");
if(Microphone.names.length>0)
microphone = Microphone.getMicrophone();
microphone.addEventListener(StatusEvent.STATUS,onMicStatus,false, 0, true);
function onMicStatus(event:StatusEvent):void {
if (event.code == "Microphone.Muted")
trace("Microphone access was denied.");
}
//setup outgoing stream
outStream = new NetStream(connection);
outStream.attachCamera(camera);
outStream.attachAudio(microphone);
outStream.publish("DemoVideo1","live");
//setup outgoing video and attach outgoing devices
outVideo = new Video(250,250);
outVideo.attachCamera(camera);
addChild(outVideo);
}
]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
</s:WindowedApplication>