using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.Networking; using UnityEngine.Video; public class loadVideo : MonoBehaviour { public VideoPlayer videoPlayer; public AudioSource AS; private string buildingName; public GameObject BV; // Start is called before the first frame update private void Start() { building building=FindObjectOfType(); buildingName = building.buildingName; loadSound(); } public void LoadVideoFromSA() { // 构建完整的文件路径 string filePath = Path.Combine(Application.streamingAssetsPath, "Video/", buildingName + ".mp4"); // 判断文件是否存在 if (!File.Exists(filePath)) { Debug.LogError($"视频文件 {filePath} 不存在!"); } else { BV.SetActive(true); // 启动协程加载视频 videoPlayer.url = "file://" + filePath; videoPlayer.Play(); } } public void LoadSoundFromSA(string buildingName, string ML, Action onAudioLoaded) { // 构建完整的文件路径 string filePath = Path.Combine(Application.streamingAssetsPath, ML, buildingName + ".wav"); // 判断文件是否存在 if (!File.Exists(filePath)) { Debug.LogError($"音频文件 {filePath} 不存在!"); onAudioLoaded(null); // 回调并传递null return; } // 启动协程加载音频 StartCoroutine(LoadAudioClipCoroutine(filePath, onAudioLoaded)); } private IEnumerator LoadAudioClipCoroutine(string filePath, Action onAudioLoaded) { // 创建UnityWebRequest来加载音频 UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip("file://" + filePath, AudioType.WAV); yield return www.SendWebRequest(); // 检查加载是否成功 if (www.result != UnityWebRequest.Result.Success) { Debug.LogError($"音频加载失败: {www.error}"); onAudioLoaded(null); // 回调并传递null } else { // 获取并返回加载的音频 AudioClip audioClip = DownloadHandlerAudioClip.GetContent(www); onAudioLoaded(audioClip); // 回调并传递加载的音频 Debug.Log("音频加载成功:" + filePath); } } public void loadSound() { // 调用加载音频的方法,并传递回调函数 this.LoadSoundFromSA(buildingName, "sound/", (audioClip) => { if (audioClip != null) { Debug.Log("音频加载成功," + buildingName + "播放音频!"); AS.clip = audioClip; //AS.Play(); } else { Debug.LogError("音频加载失败!"); } }); } }