unity本地加载视频

using UnityEngine;
using UnityEngine.Video;
using System.IO;

/// <summary>
/// 视频管理器:本地视频播放(StreamingAssets)
/// </summary>
public class VideoManager : MonoBehaviour
{
    public static VideoManager Instance { get; private set; }
    public  VideoPlayer _videoPlayer;
    private string _currentVideo;

    private void Awake()
    {
        if (Instance != null) { Destroy(gameObject); return; }
        Instance = this;
        DontDestroyOnLoad(gameObject);

      //  _videoPlayer = gameObject.AddComponent<VideoPlayer>();
        _videoPlayer.playOnAwake = false;
        //_videoPlayer.renderMode = VideoRenderMode.CameraNearPlane; // 默认渲染到摄像机
    }

    /// <summary>
    /// 播放视频(避免重复播放同一个)
    /// </summary>
    public void Play(string fileName)
    {
        if (_currentVideo == fileName && _videoPlayer.isPlaying) return;

        string path = Path.Combine(Application.streamingAssetsPath, fileName);
        if (!File.Exists(path))
        {
            Debug.LogError($"视频文件未找到: {path}");
            return;
        }

        _videoPlayer.url = path;
        _videoPlayer.Play();
        _currentVideo = fileName;
    }

    /// <summary>
    /// 停止播放
    /// </summary>
    public void Stop()
    {
        if (_videoPlayer.isPlaying) _videoPlayer.Stop();
    }
}

 

posted on 2025-08-17 00:44  zqiang0803  阅读(17)  评论(0)    收藏  举报

导航