4

私はFlashBuilderを使用しており、ローカルカメラからビデオをストリーミングするspark-applicationFlexプロジェクトを作成しました。私が使用する場合mx.controls.VideoDisplay; 方法がありますので問題ありませんattachCamera(camera)。しかし、SparkのVideoDisplayコンポーネントにはそのメソッドがありません。Sparkアプリ内でmxコントロールを使用できることは知っていますが、知りたいのは次のとおりです。

  • spark.components.VideoDisplayとの本当の違いは何mx.controls.VideoDisplayですか?
  • カメラを取り付けるにはどうすればよいspark.components.VideoDisplayですか?
  • Sparkを使用する場合(mxライブラリの方が新しいため)、利点はありますか?

ありがとう。

編集:ドキュメントには次のように記載されています:「Flex4.0以降、このクラスの代わりにspark.components.VideoPlayerクラスを使用することをお勧めします。(mx.controls.VideoDisplay)

4

5 に答える 5

14

これを機能させるための詳細は次のとおりです。

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); 
}
于 2011-01-22T09:09:59.593 に答える
4

正直なところ、答えは、Sparkにカメラを取り付けることはできないということですVideoDisplay。ごめん。私もこれを実現しようとしていましたが、デフォルトでmxに設定する必要がVideoDisplayあり、それを使用しても問題はありません:)

Sparkは新しく、可能な限り使用することを好みますが、この場合は、MXコントロールを使用する必要があります。それは起こります。

于 2010-11-14T22:36:58.187 に答える
2

カメラを接続しようとしましvideoDisplay.videoObjectたが、videoObjectは常にnullであり、エラーが発生します。

これを解決するために、ダミーのDynamicStreamingVideoObjectを作成し、それをソースとして渡しました。

_cam = new DynamicStreamingVideoSource();

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

次に、アプリケーションのcreationCompleteハンドラーでこれを行いました

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

これで問題は解決しました。

于 2011-01-11T23:43:36.397 に答える
2

これに対する解決策を探していて、以下を見つけました

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

ありがとう

于 2012-05-15T09:54:22.260 に答える
0

より短い回避策:

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

この場合、Videoオブジェクトは次のように参照できますcamVideoDisplay.videoObject。例:

camVideoDisplay.videoObject.attachCamera( .. );
于 2016-05-21T14:07:33.743 に答える