如何在Flex中使用VideoDisplay显示实时流媒体视频

Her*_*rms 13 apache-flex video streaming

我想知道如何使用VideoDisplay对象(在MXML中定义)来显示通过NetStream从FMS流式传输的视频.

flex3文档表明这是可能的:

视频显示器...支持通过HTTP进行渐进式下载,从Flash Media Server进行流式传输以及从Camera对象进行流式传输.

但是,稍后在文档中我可以看到的是attachCamera()方法.似乎没有像旧的Video对象那样的attachStream()方法.

看起来您可以使用source属性播放通过HTML提供的固定文件,但我没有看到有关如何附加NetStream的任何信息.

旧的Video对象似乎仍然存在,虽然它不是基于UIComponent,并且似乎不能在MXML中使用.

我发现这篇博文显示了如何使用常规的Video对象,但我更喜欢使用VideoDisplay(或者可以直接放在MXML中的其他东西).

Cos*_*hia 15

VideoDisplay是一个包装器VideoPlayer,它又一个Video子类.不幸的是,包装器阻止您将现有的NetStream附加到Video对象.

但是,在mx_internal命名空间中保存对该组件的引用,因此以下应该可以解决这个问题:

videoDisplay.mx_internal::videoPlayer.attachNetStream(incomingStream);
videoDisplay.mx_internal::videoPlayer.visible = true;
Run Code Online (Sandbox Code Playgroud)

(您需要导入mx.core.mx_internal命名空间)


Art*_*rov 6

不幸的是,您只能在Video对象上附加NetStream().因此,如果您想从FMS获取数据,那么您注定要使用em.

顺便说一下,attachCamera()方法本地摄像头视频发布到服务器,所以要小心;)