工程包链接
链接:https://pan.baidu.com/s/1dHDFO5dRoR2mBsHHqD4ToQ
提取码:stf4
using RenderHeads.Media.AVProVideo;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VideoPlaye : MonoBehaviour {
public GameObject game;
public MediaPlayer mediaPlayer;
public bool stop_bool;
// Use this for initialization
void Start () {
stop_bool = false;
mediaPlayer.Events.AddListener(OnMediaPlayerEvent);
}
// Update is called once per frame
void Update () {
}
/// <summary>
/// 播放视频
/// </summary>
public void OnClick_PlayEvent()
{
if (!stop_bool)
{
if (!game.activeInHierarchy)
{
game.SetActive(true);
}
mediaPlayer.m_VideoPath = Application.streamingAssetsPath + "/00.mp4";
if (string.IsNullOrEmpty(mediaPlayer.m_VideoPath))
{
mediaPlayer.CloseVideo();
}
else
{
mediaPlayer.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder, Application.streamingAssetsPath + "/00.mp4");
}
mediaPlayer.Control.Rewind();
mediaPlayer.Control.SetVolume(1);
}
else
{
mediaPlayer.Control.Play();
}
}
/// <summary>
/// 暂停视频
/// </summary>
public void OnClick_StopEvent()
{
if (media_bool)
{
mediaPlayer.Control.Stop();
stop_bool = true;
}
}
/// <summary>
/// 关闭视频
/// </summary>
public void OnClick_CloseEvent()
{
game.SetActive(false);
stop_bool = false;
}
#region 视频监听事件
private bool media_bool;
public void OnMediaPlayerEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, ErrorCode errorCode)
{
switch (et)
{
case MediaPlayerEvent.EventType.FirstFrameReady:
print("startedEvent开始事件触发");
OnMediaPlayerStarted(mp);
break;
case MediaPlayerEvent.EventType.FinishedPlaying:
print("finishedEvent结束事件触发");
OnMediaPlayerFinished(mp);
break;
}
}
/// <summary>
/// 开始事件触发
/// </summary>
/// <param name="mp"></param>
void OnMediaPlayerStarted(MediaPlayer mp)
{
print("开始事件触发的后续");
media_bool = true;
}
/// <summary>
/// 结束事件触发
/// </summary>
/// <param name="mp"></param>
void OnMediaPlayerFinished(MediaPlayer mp)
{
print("结束事件触发的后续");
media_bool = false;
stop_bool = false;
}
#endregion
}