经过测试unity 内置VideoPlayer的url只适合本地PC版本(web不支持url), 选用AvPro Video 是为了通过url链接服务器视频发布unity webgl,AvPro Video回调函数最为重要(可以在没有连接到视频前,做些相关处理)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using UnityEngine.Video;
using DG.Tweening;
using RenderHeads.Media.AVProVideo;
public class Start_in : MonoBehaviour
{
public Button but;
public MediaPlayer m_player;
[Header("屏保")]
public GameObject ping_bao;
private string path;
// Start is called before the first frame update
void Start()
{
ping_bao.SetActive(true);
but.gameObject.SetActive(false);
but.onClick.AddListener(Change_scene);
path = Meng_ya.path + "StreamingAssets" + "/片头" + "/" + "我和我的祖国.mp4";
print(path);
m_player.m_VideoPath = path;
m_player.m_AutoOpen = true;
m_player.m_AutoStart=true;
//内置监听函数
m_player.Events.AddListener(OnVideoEvent);
}
void Change_scene()
{
SceneManager.LoadScene("模块选择");
}
public void OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode er)
{
switch (et)
{
case MediaPlayerEvent.EventType.ReadyToPlay:
Debug.Log("ReadyToPlay");
//加载完毕准备播放
break;
case MediaPlayerEvent.EventType.Started:
Debug.Log("ReadyToPlay");
//正在播放
ping_bao.SetActive(false);
break;
case MediaPlayerEvent.EventType.FirstFrameReady:
Debug.Log("First frame ready");
//第一帧渲染完成
break;
case MediaPlayerEvent.EventType.FinishedPlaying:
Debug.Log("Finished");
//播放完毕
but.gameObject.SetActive(true);
but.transform.DOScale(1, 1);
break;
}
}
}