CRIWARE Unity Plugin Manual
Last Updated: 2024-07-12
[CriMana] 无缝连续播放
范例描述
概述
该范例在不中断的情况下依次播放多个视频文件。该功能被称作"无缝连续播放"。
范例在任意顺序下无缝播放七个视频文件。
对于Unity Editor中的 CriManaMovieController组件, 根据用户操作,无缝连续播放将从运行时脚本中进行。
请使用以下步骤来进行无缝连续播放。
点击数字按钮将相应的视频添加至队列,以进行无缝连续播放。他们将以被点击的顺序播放。
当寄存了一个或多个视频时,
Play
按钮将被开启。点击
Play
按钮以开始播放。
哪怕在播放途中,你也可以点击一个数字按钮将另一个视频添加至队列。
当所有寄存视频都结束播放后,状态将变成PLAYEND。
如需停止播放,请点击
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信息(或者都不拥有)。
所有的音轨都必须拥有相同的结构 (各个音轨的轨数量以及频道数量) 并使用相同的音频编码格式。
在无缝连续播放中,跳转播放只对其中的第一个视频可用。 你无法直接跳转第二个视频。
与进阶范例,"使用多个播放器动态地切换视频"的不同
该范例"无缝以及依次"播放多个视频文件。 如果你想要在播放途中切换视频时,请查看进阶范例,
使用多个播放器动态地切换视频
。
Copyright (c) CRI Middleware Co., Ltd. 1.8.10