说实话真的很郁闷,高级语言的优点很多,缺点就是什么东西都给你定制封装的很好,接口也很简单,使开发人员无需关心底层的代码。FLEX的VDIEODISPLAY是一个专业的网络媒体播放器,指定服务器的URL就可以开始播放媒体数据。查了一下提到的关联DynamicStreamingVideoSource也是一个封装好的网络数据对象,控制起来完全没有意义。flash.media.video也是一个让C程序员很郁闷的东西。
把流媒体数据放进播放器,这个是个多么基础的功能啊,一遇到这些事情就开始怀念C++的好处了。
可能是因为这套系统的定位构架在于专业C/S流媒体服务上吧,必须需要独立的media server来做服务,而client尽量少参与或者不参与服务以内的工作,这样可以很好的划分系统的功能。难道结论只有server端实现RTMP服务了吗?坑爹啊!!
看能否自己写或者改一个播放器吧。Orz 你丫再不支持,难道坐等FLEX 5.0
下午继续努力,又仔细翻阅了FLEX的帮助文档,找到一个可行的方法。
自定义代码封装使用 flash.net.netstream来承载视频流, 作为播放对象,交给player 来performance,这可能是个方法。如过需要测试,需要服务器的支持。不过在使用之前最好先封装一下FLEX的SOCKET(flash.net.socket),还要做缓冲池,缓冲交换队列等等。不过终于有思路的,辛苦没有白费。
(netstream 是一个网络专用数据流的连接容器,本身用它来接收网络连接的bytes流,不过可以给这个对象添加新的mem buffer,这个方法估计是现阶段最好的方法了)