Node2D 插件示例

本示例是使用 Kanzi Engine 插件的一个用例。本示例展示如何在 Kanzi Engine 插件中创建自定义 2D 节点 VideoView2D。VideoView2D 节点可渲染分辨率能被 2 整除且采用 MPEG-4 编解码器编码的视频文件。VideoView2D 节点不播放视频文件中的音轨。在 Android 上,本示例使用借助 OES_EGL_image_external 扩展的共享图像纹理,从外部上下文流式传输视频。

获取示例

要获取该示例,请在 Kanzi Studio Quick Start 窗口中点击 Projects,然后选择 Examples 选项卡。在 Node2D_plugin 示例旁边,点击 下载。

Kanzi Studio 会将该示例下载到 <KanziWorkspace>/Examples/Node2D_plugin 目录。视频文件存储在 Application/bin 目录中。

示例内容

示例在 Windows 和 Android 平台上运行:

  • Windows 平台使用 Microsoft Media Foundation 进行视频播放。您可以在 <KanziWorkspace>/Examples/Node2D_plugin/Application/src/platform_specific/win32/src 中找到 Windows 平台的源文件。

    备注

    要在 Windows 10 N 和 Windows 10 KN 版本中运行 Node2D 插件示例,您必须安装 Microsoft 提供的 Media feature pack。

  • Android 平台使用本机媒体播放器。您可以在 <KanziWorkspace>/Examples/Node2D_plugin/Application/src/platform_specific/android/src 中找到 Android 平台的源文件。

  • 您可以在 <KanziWorkspace>/Examples/Node2D_plugin/Application/src/plugin 中找到两个平台通用的代码。

要了解如何创建 Kanzi Engine 插件,请参阅 创建 Kanzi Engine 插件。

使用外部纹理句柄

Android 原生代码和 Kanzi 应用程序框架在不同的上下文中运行,这就是它们无法共享 GPU 资源的原因。一种广泛可用的 OpenGL 扩展(GL_OES_EGL_image_external)提供了对外部纹理资源的支持,这些资源可以在上下文之间共享,限制很少。Node2D_plugin 示例使用 Android 媒体播放器将视频流渲染到绑定到外部纹理句柄的表面视图。在 Kanzi 端,渲染视频的节点的纹理绑定到相同的外部纹理句柄,并在渲染循环中显示。

您可以在其他平台上使用这种方法,但前提是:

  • 设备支持 GL_OES_EGL_image_external 扩展。

  • 另一个环境中的服务能够提供要传送给外部纹理句柄的纹理。

典型的示例是流式传输视频。

运行示例

要运行示例:

  1. 在 Kanzi Studio 中,选择 File > Open Kanzi Command Prompt。

    Kanzi Command Prompt 打开 Windows 命令提示符,并为您打开 Kanzi Command Prompt 的 Kanzi 版本设置 Kanzi 环境变量。

    使用 Kanzi Command Prompt 访问 Kanzi 实用工具和构建工具(例如 Gradle 和 CMake),而无需使用绝对路径或设置环境变量。

    ../../_images/open-kanzi-command-prompt.png

    小技巧

    您可以在 Windows 开始菜单的 Rightware 目录中找到 Kanzi Command Prompt。

    当您安装了多个版本的 Kanzi 时,确保将您要在该命令提示符下使用的 Kanzi 版本的 Kanzi Command Prompt 启动。

  2. 在 <KanziWorkspace>/Examples/Node2D_plugin/Application 目录中的 Kanzi Command Prompt 中运行生成示例应用程序的 Visual Studio 解决方案的脚本。

    generate_cmake_vs2022_solution.bat
    

    该脚本会在 <KanziWorkspace>/Examples/Node2D_plugin/Application/build_vs2022 目录中为应用程序生成 Visual Studio 解决方案。

  3. 在 Visual Studio 中打开 <KanziWorkspace>/Examples/Node2D_plugin/Application/build_vs<Version>/Node2D_plugin.sln Visual Studio 解决方案。

  4. 在 Visual Studio 的 Solution Explorer 中,右键点击 Node2D_plugin_executable 项目并选择 Set as StartUp Project。

  5. 选择您要使用的解决方案配置并运行您的应用程序。

    在开发期间,选择 Debug 配置。当您准备好创建生产版本时,选择 Release 配置。

    ../../_images/debug-configuration.png

另请参阅

Kanzi Engine 插件

创建 Kanzi Engine 插件