【问题标题】:How do you play a single NetStream but show different parts of it on different video objects?您如何播放单个 NetStream 但在不同的视频对象上显示它的不同部分?
【发布时间】:2011-01-20 12:10:33
【问题描述】:

我的 3D 视频在每一帧上并排编码了每只眼睛的内容。我想做的是把左半边覆盖在右半边。 (然后我将更改颜色和覆盖层,以便戴蓝青色 3D 眼镜的人可以观看视频)。

我尝试将单个 NetStream 附加到两个视频对象并偏移它们,但这只让流在一个对象上播放。

有什么建议吗?

【问题讨论】:

    标签: flash actionscript-3 video 3d video-streaming


    【解决方案1】:

    由于stream 在定义上或多或少是小数据位的连续流,而不是固定长度的对象,因此您永远不能同时访问 NetStream 的两个不同位置。您可以尝试在帧与帧之间“跳跃”,产生一种“快门”效果,但这可能效果不佳。

    但是,您可以让视频对象共享同一个 NetConnection,并让两个 NetStream 实例加载同一个电影,或者您可以只在两个单独的 FLV 中同时播放您的左眼和右眼内容.但是,您必须注意同步,并且可能会出现轻微的不一致。

    如果您的目标是 Flash Player 10.1 或更高版本,您可以将两个 FLV 作为 byteArray 加载到内存中,然后使用 NetStream.appendBytes 播放它们。这应该解决同步问题。

    【讨论】:

      【解决方案2】:

      我已经想出了如何完成我想要的。

      伪代码:

      bmd1 = new BitmapData(...);
      bmd2 = new BitmapData(...);
      bmp1 = new Bitmap(bmd1);
      bmp2 = new Bitmap(bmd2);
      addChild(bmp1);
      addChild(bmp2);
      
      onEnter {
        bmd1.draw(video, ...transformations)
        bmd2.draw(video, ...transformations)
      }
      

      然后将 bmp1 和 bmp2 组织到您想要的位置,并相应地进行转换。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多