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 et mx.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) "

Était-ce utile?

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( .. );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top