我想知道如何使用VideoDisplay对象(在MXML中定义)来显示通过NetStream从FMS流式传输的视频.
该flex3文档表明这是可能的:
视频显示器...支持通过HTTP进行渐进式下载,从Flash Media Server进行流式传输以及从Camera对象进行流式传输.
但是,稍后在文档中我可以看到的是attachCamera()方法.似乎没有像旧的Video对象那样的attachStream()方法.
看起来您可以使用source属性播放通过HTML提供的固定文件,但我没有看到有关如何附加NetStream的任何信息.
旧的Video对象似乎仍然存在,虽然它不是基于UIComponent,并且似乎不能在MXML中使用.
我发现这篇博文显示了如何使用常规的Video对象,但我更喜欢使用VideoDisplay(或者可以直接放在MXML中的其他东西).
VideoDisplay
是一个包装器VideoPlayer
,它又是一个Video
子类.不幸的是,包装器阻止您将现有的NetStream附加到Video对象.
但是,在mx_internal
命名空间中保存对该组件的引用,因此以下应该可以解决这个问题:
videoDisplay.mx_internal::videoPlayer.attachNetStream(incomingStream); videoDisplay.mx_internal::videoPlayer.visible = true;
(您需要导入mx.core.mx_internal
命名空间)
不幸的是,您只能在Video对象上附加NetStream().因此,如果您想从FMS获取数据,那么您注定要使用em.
顺便说一下,attachCamera()方法将本地摄像头视频发布到服务器,所以要小心;)