前言:自己没事写来做储备用的,用的着的童鞋可以借鉴一下。
代码如下,挺简单的,就不做解释了:
using RenderHeads.Media.AVProVideo;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class PlayVideoController : MonoBehaviour
{
[SerializeField, Tooltip("播放视频的UI")]
private DisplayUGUI displayUGUI = null;
[SerializeField, Tooltip("视频进度条")]
private Slider VideoProgress = null;
private Button PauseVideoButton = null;
/// <summary>
/// 是否显示真实的视频进度
/// </summary>
private bool IsShowRealVideoPreogress = true;
// Use this for initialization
void Start()
{
PauseVideoButton = displayUGUI.GetComponent<Button>();
if (PauseVideoButton != null)
{
PauseVideoButton.onClick.AddListener(PauseVideoMethod);
}
}
// Update is called once per frame
void Update()
{
SetVideoProgressMethod();
ShowVideoProgressMethod();
}
/// <summary>
/// 显示进度条
/// </summary>
private void ShowVideoProgressMethod()
{
if (VideoProgress != null && displayUGUI.CurrentMediaPlayer != null && IsShowRealVideoPreogress)
{
VideoProgress.value = displayUGUI.CurrentMediaPlayer.Control.GetCurrentTimeMs() / displayUGUI.CurrentMediaPlayer.Info.GetDurationMs();
}
}
/// <summary>
/// 设置视频进度
/// </summary>
/// <param name="_time"></param>
private void SetVideoProgressMethod()
{
if (Input.GetMouseButtonDown(0) && EventSystem.current.currentSelectedGameObject != null)
{
if (EventSystem.current.currentSelectedGameObject.CompareTag("Slider"))
{
IsShowRealVideoPreogress = false;
}
}
if (Input.GetMouseButtonUp(0))
{
if (VideoProgress != null && displayUGUI.CurrentMediaPlayer != null && !IsShowRealVideoPreogress)
{
displayUGUI.CurrentMediaPlayer.Control.Seek(displayUGUI.CurrentMediaPlayer.Info.GetDurationMs()*VideoProgress.value);
IsShowRealVideoPreogress = true;
}
}
}
/// <summary>
/// 播放暂停视频
/// </summary>
private void PauseVideoMethod()
{
if (displayUGUI.CurrentMediaPlayer != null)
{
if (displayUGUI.CurrentMediaPlayer.Control.IsPlaying())
{
displayUGUI.CurrentMediaPlayer.Control.Pause();
}
else
{
displayUGUI.CurrentMediaPlayer.Control.Play();
}
}
}
}