插眼: 2020/10/22 使用UnityWebRequestMultimedia新版Api
有问题请评论区插眼
至于为啥插眼更新,我觉得自己写的每行代码都是过去自己觉得ok的,而随着时间的流逝,在使用的过程中发现某些地方可能这样子会好那么一点点,有时候一点点就够了
using System.Collections; using System.IO; using UnityEngine; using UnityEngine.Networking; [RequireComponent(typeof(AudioSource))] public class AudioPlayFromSSTest : MonoBehaviour { private AudioSource audioSource; /// <summary> /// 背景音乐路径 /// </summary> public string sBGMusicPath = Application.streamingAssetsPath + "/Sounds/wBGAudio01.wav"; private void Start() { // 获取AudioSource组件 audioSource = GetComponent<AudioSource>(); // 这个考虑到用户不想要背景音乐 删除背景音乐就行,不会报错 // 即是有背景音乐即播放,没有则不播放 if (audioSource && File.Exists(sBGMusicPath)) { StartCoroutine(IELoadExternalAudioWebRequest(sBGMusicPath, AudioType.WAV)); } } /// <summary> /// 携程加载音频 /// </summary> /// <param name="_url"></param> /// <param name="_audioType">AudioType 貌似不支持Mp3 格式,请使用Wav或者是Acc等等格式</param> /// <returns></returns> private IEnumerator IELoadExternalAudioWebRequest(string _url, AudioType _audioType) { UnityWebRequest _unityWebRequest = UnityWebRequestMultimedia.GetAudioClip(_url, _audioType); yield return _unityWebRequest.SendWebRequest(); if (_unityWebRequest.isHttpError || _unityWebRequest.isNetworkError) { Debug.Log(_unityWebRequest.error.ToString()); } else { AudioClip _audioClip = DownloadHandlerAudioClip.GetContent(_unityWebRequest); audioSource.clip = _audioClip; audioSource.Play(); } } }
----------------------- OLD -------------------------
using System.Collections; using UnityEngine; using UnityEngine.Networking; public class AudioPlayFromSSTest : MonoBehaviour { AudioSource audioSource; /// <summary> /// 背景音乐路径 /// </summary> public string sBGMusicPath = Application.streamingAssetsPath + "/Sounds/wBGAudio01.wav"; void Start() { // 获取AudioSource组件 audioSource = GetComponent<AudioSource>(); StartCoroutine(IELoadExternalAudioWebRequest(sBGMusicPath, AudioType.WAV)); } /// <summary> /// // 携程 /// </summary> /// <param name="_url"></param> /// <param name="_audioType">AudioType 貌似不支持Mp3 格式,请使用Wav或者是Acc等等格式</param> /// <returns></returns> private IEnumerator IELoadExternalAudioWebRequest(string _url, AudioType _audioType) { UnityWebRequest _unityWebRequest = UnityWebRequestMultimedia.GetAudioClip(_url, _audioType); yield return _unityWebRequest.SendWebRequest(); if (_unityWebRequest.isHttpError || _unityWebRequest.isNetworkError) { Debug.Log(_unityWebRequest.error.ToString()); } else { AudioClip _audioClip = DownloadHandlerAudioClip.GetContent(_unityWebRequest); audioSource.clip = _audioClip; audioSource.Play(); } } }