Sofdec2-Unity/连续视频播放
Sofdec2支持多个视频连续无缝播放。
每个视频在衔接处是没有任何缝隙的,不会产生顿帧,黑屏等问题。
我们采用在界面上进行视频的播放。
Unity中设置
要创建多个视频的连续播放,首先需要将我们的多个视频使用Sofdec2进行压缩编码,并放置在Unity的资源文件中:
如上图,我们有7个视频用以进行连续播放。
而后创建UI中的Image于界面中并调整相关大小:
创建完成并调整大小后,我们创建CriManaMovieControlForUI Component:
此时我们不填写Movie Path,也不勾选Play On Start,这些内容我们将在脚本中进行。
而后在场景中的Main Camera上创建脚本,脚本内容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playlist : MonoBehaviour
{
public CriManaMovieControllerForUI movieControl;
private readonly string[] contentslist = {
"Seamless/seamless_sample_1.usm",
"Seamless/seamless_sample_2.usm",
"Seamless/seamless_sample_3.usm",
"Seamless/seamless_sample_4.usm",
"Seamless/seamless_sample_5.usm",
"Seamless/seamless_sample_6.usm",
"Seamless/seamless_sample_7.usm",
};
public void moviePlay()
{
for (int i = 0; i <= 6; i++)
{
movieControl.player.SetFile(null, contentslist[i], CriMana.Player.SetMode.Append);
movieControl.player.Start();
}
}
}
}
脚本中我们创建了数组用于存储各个视频的位置,而后在事件中我们进行调用和播放。
完成脚本后我们需要将相关组件挂钩:
同时我们创建了Button用于控制视频进行播放。
注意:我们想播放的视频数量为7个,但是默认的同时存储序列最多为4个,因此我们必须修改相关设置,使之大于7个才能正常播放。
如上图,我们更改Number Of Max Entries的数量,更改为8个以便视频能够正常无缝播放。
完成上述内容后,运行场景点击按钮我们就能够正常播放视频了:
Tips:连续播放的视频和普通视频一样我们也可以通过暂停和播放的方式进行控制!
注意:连续播放的视频需要满足下面的条件
- 所有视频必须使用相同分辨率,帧速率以及编码格式
- 所有的视频文件都要拥有alpha信息(或者都不拥有)
- 所有的音轨都要拥有相同的结构(各个音轨的轨数量以及频道数量)并使用相同的编码格式
想问一下 多个视频的轮播怎么做