Domanda

Sto usando Flash Builder e ha creato un progetto Flex scintilla applicazione che lo streaming video dalla telecamera locale. Se uso mx.controls.VideoDisplay; non c'è nessun problema dal momento che ha il metodo attachCamera(camera). Ma componente VideoDisplay Spark non ha questo metodo. So che posso utilizzare i controlli MX all'interno di un'applicazione Spark, ma io voglio sapere:

  • Qual è la vera differenza tra spark.components.VideoDisplay e mx.controls.VideoDisplay?
  • Come posso allegare fotocamera a spark.components.VideoDisplay?
  • C'è qualche vantaggio se vado con scintilla (dal momento che è più recente alla libreria mx)?

Grazie.

Modifica : Nella documentazione questo è menzionato: " A partire da Flex 4.0, Adobe consiglia di utilizzare la classe spark.components.VideoPlayer come alternativa a questa classe (mx.. controls.VideoDisplay) "

È stato utile?

Soluzione

Ecco le specifiche per ottenere questo lavoro:

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); 
}

Altri suggerimenti

Straight up, la risposta è che non è possibile collegare una telecamera alla VideoDisplay Spark. Scusa. Stavo cercando di rendere questo accada troppo, ma ho dovuto per difetto al VideoDisplay mx e non c'è niente di sbagliato con l'utilizzo di esso :)

Spark è più recente e preferisco usarlo quando anche possibile, ma in questo caso, basta utilizzare il controllo MX. Succede.

Ho provato a fissare la fotocamera a videoDisplay.videoObject - ma il VideoObject era sempre nullo, che genera un errore

.

Per risolvere che ho creato un manichino DynamicStreamingVideoObject e la passò come origine

_cam = new DynamicStreamingVideoSource();

<s:VideoDisplay id="mycam" source="_cam" />

quindi, nel gestore creationComplete dell'applicazione ho fatto questo

var cam:Camera = Camera.getCamera();
mycam.videoObject.attachCamera(cam); 

questo ha risolto il problema.

alla ricerca di una soluzione a questo e ha trovato la seguente

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);

grazie

soluzione più breve:

<s:VideoDisplay id="camVideoDisplay"
                source="dummy"
                autoPlay="false"
                autoDisplayFirstFrame="false"/>

In questo caso, l'oggetto Video può essere poi riferimento come camVideoDisplay.videoObject, per esempio:.

camVideoDisplay.videoObject.attachCamera( .. );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top