كيفية عرض ملفات الفيديو مباشرة باستخدام عرض الفيديو في فليكس

StackOverflow https://stackoverflow.com/questions/42333

  •  09-06-2019
  •  | 
  •  

سؤال

أنا أتساءل كيف يمكن استخدام عرض الفيديو كائن (المحددة في MXML) لعرض الفيديو المتدفقة من FMS عبر NetStream.

على Flex3 مستندات أقترح هذا ممكن:

عرض الفيديو ...يدعم تحميل تقدمية عبر HTTP ، يتدفقون من فلاش وسائل الاعلام الخادم, و لقطات من كاميرا الكائن.

ومع ذلك, في وقت لاحق في مستندات كل ما أراه هو attachCamera الأسلوب ().هناك لا يبدو أن يكون attachStream (طريقة) مثل الفيديو القديمة كائن له.

يبدو أنك يمكن أن تلعب ثابت ملف خدم أكثر HTML باستخدام مصدر الملكية, ولكن لا أرى أي شيء حول كيفية إرفاق NetStream.

القديمة فيديو كائن لا يزال يبدو أن توجد ، على الرغم من أنها لا تستند إلى UIComponent و لا يبدو أن تكون قابلة للاستخدام في MXML.

وجدت هذا بلوق وظيفة يظهر كيفية القيام بذلك مع الفيديو العادية كائن لكني افضل بكثير من استخدام عرض الفيديو (أو أي شيء آخر يمكن أن توضع مباشرة في MXML).

هل كانت مفيدة؟

المحلول

للأسف يمكنك attachNetStream() فقط على الفيديو كائن.لذلك محكوم عليك استخدام em إذا كنت ترغب في الحصول على البيانات من FMS.

بالمناسبة attachCamera (طريقة) تنشر المحلية كاميرا الفيديو إلى الخادم حتى نكون حذرين.)

نصائح أخرى

VideoDisplay هي التفاف على VideoPlayer, الذي بدوره هو a Video فرعية.للأسف المجمع يمنعك من ربط القائمة NetStream الفيديو كائن.

ومع ذلك ، في إشارة إلى أن العنصر الذي عقد في mx_internal مساحة, لذلك التالية ينبغي أن تفعل خدعة:

videoDisplay.mx_internal::videoPlayer.attachNetStream(incomingStream);
videoDisplay.mx_internal::videoPlayer.visible = true;

(تحتاج إلى استيراد mx.core.mx_internal مساحة)

أنه يعمل.

mx:عرض الفيديو الحية="true" autoPlay="true" مصدر="rtmp://server.com/appname/streamname" />

التي سوف تعطيك لقطات فيديو حية من خلال عرض الفيديو...المشكلة انها لن تستخدم القائمة netconnection كائن يخلق نفسه...وهو ما أحاول العثور على عمل.

هنا رابط مثال على كيفية استخدام الفيديو:http://blog.flexexamples.com/2008/03/01/displaying-a-video-in-flex-using-the-netconnection-netstream-and-video-classes/

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical"
    verticalAlign="middle"
    backgroundColor="white"
    creationComplete="init();">

<mx:Script>
<![CDATA[
    import mx.utils.ObjectUtil;

    private var nc:NetConnection;
    private var ns:NetStream;
    private var video:Video;
    private var meta:Object;

    private function init():void {
    var nsClient:Object = {};
    nsClient.onMetaData = ns_onMetaData;
    nsClient.onCuePoint = ns_onCuePoint;

    nc = new NetConnection();
    nc.connect(null);

    ns = new NetStream(nc);
    ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");
    ns.client = nsClient;

    video = new Video();
    video.attachNetStream(ns);
    uic.addChild(video);
    }

    private function ns_onMetaData(item:Object):void {
    trace("meta");
    meta = item;
    // Resize Video object to same size as meta data.
    video.width = item.width;
    video.height = item.height;
    // Resize UIComponent to same size as Video object.
    uic.width = video.width;
    uic.height = video.height;
    panel.title = "framerate: " + item.framerate;
    panel.visible = true;
    trace(ObjectUtil.toString(item));
    }

    private function ns_onCuePoint(item:Object):void {
    trace("cue");
    }
]]>
</mx:Script>

<mx:Panel id="panel" visible="false">
    <mx:UIComponent id="uic" />
    <mx:ControlBar>
    <mx:Button label="Play/Pause" click="ns.togglePause();" />
    <mx:Button label="Rewind" click="ns.seek(0); ns.pause();" />
    </mx:ControlBar>
</mx:Panel>
</mx:Application>

رأيت نموذج التعليمات البرمجية فيها شيء مثل هذا العمل:

// Connect to the video stream in question.
var stream:NetStream = new NetStream( chatNC );
stream.addEventListener( NetStatusEvent.NET_STATUS, handleStreamStatus );
stream.addEventListener( IOErrorEvent.IO_ERROR, handleIOError );

// Build the video player on the UI.
var video:Video = new Video(246, 189);
var uiComp:UIComponent = new UIComponent();
uiComp.addChild( video );
uiComp.width = 246;
uiComp.height = 189;
stream.play( streamName );
video.attachNetStream( stream );
video.smoothing = true;
video.width = 246;
video.height = 189;
view.videoPlayerPanel.removeAllChildren();
view.videoPlayerPanel.addChild( uiComp );

ولكن في الحقيقة لا أستطيع الحصول على عمل نفسي.سأضعها هنا في وقت لاحق إذا كنت يمكن أن الرقم بها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top