J'ai un problème avec le flash, que je ne connais pas vraiment. Je base ce code sur ce qui est arrivé avec le serveur multimédia wowza dans l'exemple du chat vidéo, mais à la différence de cet exemple, le flash ne me demande pas si j'autorise ou non la caméra vidéo.Flash Webcam Permissions
Ci-dessous mon actionscript:
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.media.Camera;
import flash.media.Microphone;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.system.Security;
import flash.system.SecurityPanel;
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.StatusEvent;
public class QandA extends Sprite {
Security.LOCAL_TRUSTED;
private var nc:NetConnection = null;
private var camera:Camera;
private var microphone:Microphone;
private var nsPublish:NetStream = null;
private var nsPlay:NetStream = null;
private var videoCamera:Video;
public var prompt:TextField;
public function QandA():void {
stage.align = "TL";
stage.scaleMode = "noScale";
videoCamera = new Video(160,120);
addChild(videoCamera);
camera = Camera.getCamera();
microphone = Microphone.getMicrophone();
if (camera.muted) {
trace("Camera Muted");
Security.showSettings(SecurityPanel.CAMERA);
camera.addEventListener(StatusEvent.STATUS, statusHandler);
} else {
startCamera();
}
}
private function statusHandler(e:StatusEvent):void {
if (e.code == "Camera.Unmuted") {
trace("Camera Unmuted");
startCamera();
camera.removeEventListener(StatusEvent.STATUS, statusHandler);
} else {
trace("StatusEvent: " + e.code + " " + e.toString());
}
}
private function startCamera():void {
// here are all the quality and performance settings that we suggest
camera.setMode(160, 120, 12, false);
camera.setQuality(0, 75);
camera.setKeyFrameInterval(24);
microphone.rate = 11;
microphone.setSilenceLevel(0);
nc = new NetConnection();
nc.connect("rtmp://localhost/live/");
// get status information from the NetConnection object
nc.addEventListener(NetStatusEvent.NET_STATUS, ncOnStatus);
}
private function nsPublishOnStatus(infoObject:NetStatusEvent):void
{
trace("nsPublish: "+infoObject.info.code+" ("+infoObject.info.description+")");
}
private function ncOnStatus(infoObject:NetStatusEvent):void
{
trace("nc: "+infoObject.info.code+" ("+infoObject.info.description+")");
nsPublish = new NetStream(nc);
nsPublish.addEventListener(NetStatusEvent.NET_STATUS, nsPublishOnStatus);
nsPublish.bufferTime = 0;
nsPublish.publish("testing");
// attach the camera and microphone to the server
nsPublish.attachCamera(camera);
nsPublish.attachAudio(microphone);
}
}
Je suis assez confiant, il est quelque chose de simple; comme j'ai vu ce code dans/sur d'innombrables sites lors de la discussion comment publier sur un serveur en direct.
Toute aide serait grandement appréciée, j'ai essayé d'utiliser ce code sur un serveur web pour voir s'il s'agissait simplement de paramètres de sécurité locaux, mais ce n'était pas le cas.
journaux que je reçois lors du débogage de l'application dans Flash CS5:
Tentative de lancement et se connecter à l'aide du joueur URL D: \ développement \ qanda \ qandaHost.swf
[SWF] D: \ développement \ qanda \ qandaHost.swf - 3583 octets après décompression
Caméra Muted
nc: NetConnection.Connect.Success
nsPublish: NetStream.Publish.Start
Hmm, j'ai été en mesure d'obtenir la connexion et en cours d'exécution, mais je ne vois pas la webcam dans le swf qui est exporté. C'est juste un écran blanc. Toutefois, si je passe au serveur de streaming vidéo en direct, je peux en fait voir les informations de la webcam. Quelque chose ne va pas avec mon interface. – Scott