本次Demo演示工具介绍:Unity版本:2020.3.25,Visual Studio版本: 2020;
1:使用Unity新建一个工程,新建空场景并保存,然后在Project面板下新建几个文件夹:Res,Resources,Scence,Scripts,此三个文件夹放一个根目录VideoPlayerDemo,目录如下;这是我的习惯,大家随意;
2:Res文件夹下创建一个Render Texture,Hierarchy面板下创建一个画布,再创建RawImage,相机设置为纯色渲染,Projection设置为Orthographic模式,画布设置ScreenSpace_Camera模式,并将主相机赋值给画布的渲染相机,RawImage设置为随画布拉伸的方式,锚点的右下角那个点一下;
3:新建一个面板Controller,将再该面板中编写相关播放控制功能;Slider-进度条,Dropdown-播放速度,两个Text文本设置播放时间,还有个播放按钮。
4:新建类VideoController挂载到控制面板上;
///
/// 绑定拖拽功能
///
///
///
///
public static void AddTriggersListener(GameObject obj, EventTriggerType eventID, UnityAction action)
{
EventTrigger trigger = obj.GetComponent();
if (trigger == null)
{
trigger = obj.AddComponent();
}
if (trigger.triggers.Count == 0)
{
trigger.triggers = new List();
}
UnityAction callback = new UnityAction(action);
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = eventID;
entry.callback.AddListener(callback);
trigger.triggers.Add(entry);
}
public class VideoController : MonoBehaviour
{
private Slider slider;
private Text totleTimer;
private Text culTimer;
private Dropdown speedValue;
private Button playbtn;
private Sprite PlaySP;
private Sprite PuaseSP;
bool isPause = false;
private VideoPlayer video;
private void Awake()
{
slider =Config.GetComponent(transform, "ProsseSlider");
speedValue = Config.GetComponent(transform, "SpeedDropdown");
totleTimer = Config.GetComponent(transform, "TotleTimer");
culTimer = Config.GetComponent(transform, "CulTimer");
playbtn = Config
虽然该有的功能都有,但还是建议大家使用AVPRO插件,个人觉得它比较友好,支持webgl,官方的api我使用在webgl的时候发现老是黑屏,播放不了的情况。AVPRO解决了我的问题。
最后看效果吧: