video_draw

此函数将打开的视频的当前帧绘制到一个表面(或两个表面)。它返回表面作为其返回数组的一部分,可以手动绘制该返回数组。

该函数还返回有关视频状态的数据,该数据在下面展开。

请确保仅在video_open()调用之后但在video_close()调用之前调用此函数,否则它将不执行任何操作(因为不会加载视频)。

返回数据

函数将返回一个数组,其中第一个元素([ 0 ])将是实数值。此值将显示视频的状态,并且将为:

当此状态值为0时,数组将包含更多数据,这将取决于视频的格式。您可以通过调用video_get_format()了解视频格式。

RGBA 视频

对于 RGBA 视频,位置 [1] 将包含绘制视频帧的表面。您可以获取此表面并手动绘制它

YUV 视频

某些平台(尤其是游戏主机平台)对视频使用 YUV 颜色格式,该格式使用两个表面。在这种情况下,阵列的位置 [1][2] 具有两个表面:

然后使用YUV着色器将这两个表面组合在一起,然后再用于对自定义四边形进行纹理处理,从而将视频绘制到屏幕。

有关使用着色器绘制这两个表面的步骤,请阅读YUV 视频

有关特定控制台的具体实施详细信息,请参阅YoYo游戏帮助台上的文档。

 

语法:

video_draw();

 

返回:

Array

 

例子:

var _data = video_draw();
var _status = _data[0];

if (_status == 0)
{
    var _surface = _data[1];

    draw_surface(_surface, x, y);
}

以上代码调用video_draw(),并检查返回的状态是否为0(表示正在播放视频)。在这种情况下,它将获取表面Id并在实例的位置绘制它。这只适用于 RGBA 视频。