Comment dois-je attacher l'appareil photo à spark.components.VideoDisplay
-
10-10-2019 - |
Question
J'utilise Flash Builder et créé une étincelle application Flex projet qui flux vidéo de la caméra locale. Si j'utilise mx.controls.VideoDisplay
; il n'y a pas de problème car il a méthode attachCamera(camera)
. Mais la composante VideoDisplay
Spark n'a pas cette méthode. Je sais que je peux utiliser des contrôles mx dans une application Spark mais je veux savoir:
- Quelle est la différence réelle entre
spark.components.VideoDisplay
etmx.controls.VideoDisplay
? - Comment puis-je attacher l'appareil photo à
spark.components.VideoDisplay
? - Y at-il des avantages si je vais avec étincelle (car il est plus récente à la bibliothèque mx)?
merci.
EDIT : Dans la documentation ceci est mentionné: « A partir de Flex 4.0, Adobe vous recommande d'utiliser la classe spark.components.VideoPlayer comme une alternative à cette classe (mx.. controls.VideoDisplay) "
La solution
Voici les détails pour obtenir ce travail:
import mx.events.FlexEvent;
import org.osmf.net.StreamType;
import spark.components.mediaClasses.DynamicStreamingVideoItem;
import spark.components.mediaClasses.DynamicStreamingVideoSource;
private var _cam:DynamicStreamingVideoSource = new DynamicStreamingVideoSource();
private var _dynVideoSource:DynamicStreamingVideoSource;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
_dynVideoSource=new DynamicStreamingVideoSource();
var videoItems:Vector.<DynamicStreamingVideoItem>;
videoItems=new Vector.<DynamicStreamingVideoItem>();
videoItems[0]=new DynamicStreamingVideoItem();
_dynVideoSource.host= "";
_dynVideoSource.streamType=StreamType.LIVE;
_dynVideoSource.streamItems=videoItems;
mycam.source=_dynVideoSource;
var cam:Camera = Camera.getCamera(); //Camera.names[0]);
cam.setMode(640, 480, 15);
cam.setQuality(0, 80);
mycam.videoObject.attachCamera(cam);
}
Autres conseils
Straight up, la réponse est que vous ne pouvez pas fixer un appareil photo à la Spark VideoDisplay
. Pardon. Je voulais que cela se produise aussi, mais je devais par défaut le VideoDisplay
mx et il n'y a rien de mal avec de l'utiliser :)
Spark est plus récente et je préfère l'utiliser autant que possible aussi, mais dans ce cas, il vous suffit d'utiliser la commande MX. Il arrive.
J'ai essayé de fixer la caméra à videoDisplay.videoObject
- mais le VideoObject était toujours nul, ce qui génère une erreur
Pour résoudre que je créé un mannequin DynamicStreamingVideoObject et passé comme source
_cam = new DynamicStreamingVideoSource();
<s:VideoDisplay id="mycam" source="_cam" />
puis, dans le gestionnaire d'creationComplete de l'application je l'ai fait
var cam:Camera = Camera.getCamera();
mycam.videoObject.attachCamera(cam);
a résolu le problème.
cherche sa solution à cela et trouvé le ci-dessous
var cam:Camera = Camera.getCamera();
cam.setMode(320, 240, 15);
cam.setQuality(0, 0);
var myCam:Video = new Video(320,240);
myCam.attachCamera(cam);
myVideo.addChild(myCam);
Merci
solution de contournement Shorter:
<s:VideoDisplay id="camVideoDisplay"
source="dummy"
autoPlay="false"
autoDisplayFirstFrame="false"/>
Dans ce cas, l'objet vidéo peut ensuite être référencé comme camVideoDisplay.videoObject
, par exemple:.
camVideoDisplay.videoObject.attachCamera( .. );