CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
[CriMana] 无缝连续播放

范例描述

概述

cri4u_samples_crimana_scene06_screenshot.png

该范例在不中断的情况下依次播放多个视频文件。该功能被称作"无缝连续播放"。
范例在任意顺序下无缝播放七个视频文件。
对于Unity Editor中的 CriManaMovieController组件, 根据用户操作,无缝连续播放将从运行时脚本中进行。
请使用以下步骤来进行无缝连续播放。
  1. 点击数字按钮将相应的视频添加至队列,以进行无缝连续播放。他们将以被点击的顺序播放。
  2. 当寄存了一个或多个视频时,Play按钮将被开启。点击Play按钮以开始播放。
  3. 哪怕在播放途中,你也可以点击一个数字按钮将另一个视频添加至队列。
  4. 当所有寄存视频都结束播放后,状态将变成PLAYEND。
  5. 如需停止播放,请点击Stop按钮。

场景信息


中间件 CRI Sofdec (CRI Mana)
范例 Basic samples(基本范例)
存储路径 /CRIWARE/SDK/unity/samples/UnityProject/Assets/Scenes/crimana/basic/
场景文件 Scene_06_SeamlessSequencePlayback.unity


程序描述


该范例程序使用了一个运行时脚本 以指定顺序无缝播放七个视频文件。
运行时脚本使用 CriManaMovieController 组件的API来为无缝连续播放添加视频。
在该范例中,组件已事先在Unity Editor中添加。

为无缝连续播放添加视频

执行无缝连续播放时,同样使用 CriManaMovieController::SetFile、CriManaMovieController::SetContentId 或 CriManaMovieController::SetFileRange 函数来设置播放的视频, 同时添加 CriMana.Player.SetMode.Append 参数的传参。

/* 视频需使用 CriManaMovieController.SetMode.Append 进行设置,以执行无缝连续播放。 */
/* 如果插件中的条目数量不足,将返回false。 */
bool set_result = movieController.player.SetFile(null, contentsList[i], CriMana.Player.SetMode.Append);

可以存寄视频的最大数量

在同一时间,视频可寄存于 CriManaMovieController 的最大数量可在CRIWARE Library Initializer中的Mana Config里的 "Number of Max Entries"参数中指定。默认数量为4。
这是你能够同时在队列上寄存文件(即等待加载)的最大数量。 当开始无缝连续播放时,载入的视频文件将被从寄存队列中自动移除。 例如最大数量为8时,播放在寄存了八个文件后开始的情况下,播放推进之后依然可以继续寄存文件。
当前寄存于 CriManaMovieController 的文件数量可以用 CriManaMovieController::numberOfEntries 获取。

清除寄存文件

你无法取消寄存的视频文件。 然而,当你调用 CriManaMovieController::Stop 时,寄存文件将被清除。

在播放途中添加视频

你可以在播放途中寄存一个新的视频文件。 然而,这只能在播放处于文件加载阶段时进行。 因此,如果播放尚未结束,寄存一个新文件可能失败。

获取当前的视频索引

在视频列表中已经播放的视频,其索引可以在 CriManaMovieController::FrameInfo 结构的 cnt_concatenated_movie 参数中确认获取。请使用该数值来决定正在播放的视频是否被切换过。

可无缝连续播放的视频

如需在连续播放时开启无缝播放功能,视频文件们需拥有相似的特征。 具体来说,以下规格必须相同:
  • 所有文件必须使用相同分辨率,帧速率以及编码格式。
  • 所有的文件都必须拥有alpha信息(或者都不拥有)。
  • 所有的音轨都必须拥有相同的结构 (各个音轨的轨数量以及频道数量) 并使用相同的音频编码格式。
在无缝连续播放中,跳转播放只对其中的第一个视频可用。 你无法直接跳转第二个视频。

与进阶范例,"使用多个播放器动态地切换视频"的不同

该范例"无缝以及依次"播放多个视频文件。 如果你想要在播放途中切换视频时,请查看进阶范例, 使用多个播放器动态地切换视频