public IEnumerator AddWavFIle(string path, string fileName, string strNum) { var type = AudioType.OGGVORBIS; if (File.Exists(path + fileName + ".wav")) { fileName += ".wav"; type = AudioType.WAV; } else if (File.Exists(path + fileName + ".ogg")) { fileName += ".ogg"; type = AudioType.OGGVORBIS; } else if (File.Exists(path + fileName + ".mp3")) { fileName += ".mp3"; type = AudioType.OGGVORBIS; } using (var www = UnityWebRequestMultimedia.GetAudioClip("file:///" + path + UnityWebRequest.EscapeURL(fileName), type)) { yield return(www.SendWebRequest()); if (www.downloadHandler.data.Length == 0) { // Debug.Log(www.downloadHandler.data); Debug.Log($"{path}{UnityWebRequest.EscapeURL(fileName)}, {strNum} {type.ToString()} doesnt find in files"); Debug.Log($"{www.error}"); Head.WavFiles.Add(strNum, null); } else { var audio = DownloadHandlerAudioClip.GetContent(www); audio.LoadAudioData(); Head.WavFiles.Add(strNum, audio); } } }
private IEnumerator PrepareToPlay() { if (Application.platform != RuntimePlatform.WebGLPlayer) { string assetId = playlist[currentSongIndex] + ".ogg"; // string url = "https://raidpr.secure.omnis.com/clients/demo/br/sb/Music/" + assetId; string url = "https://www.lms.mybridgestoneeducation.com/Switchback/Music/" + assetId; DownloadHandlerAudioClip downloadHandler = new DownloadHandlerAudioClip(url, AudioType.OGGVORBIS); downloadHandler.streamAudio = true; UnityWebRequest request = new UnityWebRequest(url) { downloadHandler = downloadHandler, certificateHandler = new SSLAuth() }; request.SendWebRequest(); while (!request.isDone) { yield return(null); } if (queueIsPlaying) { AudioClip clipa = DownloadHandlerAudioClip.GetContent(request); mPlayerGO.GetComponent <AudioSource>().clip = clipa; mPlayerGO.GetComponent <AudioSource>().volume = 0.25f; mPlayerGO.GetComponent <AudioSource>().Play(); isPlaying = true; } HasInitialized = true; } else { UIManager.Instance.StartCoroutine(LoadTrack(currentSongIndex)); } }
IEnumerator GetAudioClip(string path, string name, int replaceIndex) { AudioType t = GetTypeFromFile(name); if (t != AudioType.MPEG) { using (UnityWebRequest r = UnityWebRequestMultimedia.GetAudioClip(path, t)) { yield return(r.SendWebRequest()); if (r.isNetworkError || r.isHttpError) { Debug.Log(r.error); } else { selectedClip = DownloadHandlerAudioClip.GetContent(r); if (selectedClip) { previewSource.clip = selectedClip; } } } if (selectedClip) { previewSource.clip = selectedClip; } } else { string p = ConvertMPEG(path, replaceIndex); if (replaceIndex < _audioClips.Count) { _audioClips[replaceIndex] = p; RefreshFiles(); } } }
/// <summary> /// Load the audio from path/url in runtime. /// </summary> /// <param name="url"> Url to the target audio file. </param> /// <param name="type"> Type of the audio clip. </param> /// <param name="callback"> Callback after the audio is loaded. </param> /// <returns> Coroutine status. </returns> public static IEnumerator LoadAudio( string url, AudioType type = AudioType.OGGVORBIS, AudioLoaded callback = null) { #if UNITY_2018_1_OR_NEWER UnityWebRequest request = UnityWebRequestMultimedia.GetAudioClip(url, type); yield return(request.SendWebRequest()); AudioClip ac = DownloadHandlerAudioClip.GetContent(request); #else WWW request = new WWW(url); yield return(request); AudioClip ac = request.GetAudioClip(false, false); #endif if (callback != null) { callback.Invoke(ac); } }
IEnumerator Speaking() { string word = null; for (int i = 0; i < slots.Count; i++) { if (!slots[i].GetComponentInChildren <PhoneticManager>()) { word += " "; //yield return new WaitForSeconds(.25f); } else { //For Google Translator word += slots[i].GetComponentInChildren <PhoneticManager>().phoneme; //speech.Speak(slots[i].GetComponentInChildren<PhoneticManager>().audioClip); //yield return new WaitForSeconds(slots[i].GetComponentInChildren<PhoneticManager>().audioClip.length/1.5f); } } string url = "https://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&textlen=32&client=tw-ob&q=" + word + "&tl=En-gb"; UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.MPEG); yield return(www.Send()); result.text = word; if (!www.isNetworkError) { audioClip = DownloadHandlerAudioClip.GetContent(www); } speech.Speak(audioClip); yield return(new WaitForSeconds(audioClip.length)); result.text = ""; }
IEnumerator GetAudioClip() { using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip("http://wiggly.laar.world/vln5.wav", AudioType.WAV)) { yield return(www.SendWebRequest()); if (www.isNetworkError) { Debug.Log(www.error); } else { myClip = DownloadHandlerAudioClip.GetContent(www); audioSource.clip = myClip; //audioSource.Play(); Debug.Log("Audio has downloaded."); Playtext.GetComponent <Text>().enabled = true; Playbutton.GetComponent <Image>().enabled = true; } } }
/// <summary> /// 取得音频 /// </summary> /// <param name="path"></param> /// <param name="ac"></param> /// <returns></returns> public static IEnumerator GetAudio(string path, string aname, System.Action <string, AudioClip> ac) { yield return(new WaitForSeconds(0.1f)); #if UNITY_STANDALONE_WIN NAudioTools.LAudioConver conver = null; try { conver = new NAudioTools.LAudioConver(path); path = conver.GetWavAudioPath; } catch { GlobalUIManager.guim.CreateNewDialogTie("转码出现异常!"); } UnityWebRequest uwr = UnityWebRequestMultimedia.GetAudioClip(path, AudioType.UNKNOWN); #endif #if UNITY_ANDROID UnityWebRequest uwr = UnityWebRequestMultimedia.GetAudioClip("file://" + path, AudioType.UNKNOWN); #endif yield return(uwr.SendWebRequest()); // Debug.Log(path); if (uwr.error == "" || uwr.error == null) { ac?.Invoke(aname, DownloadHandlerAudioClip.GetContent(uwr)); } else { ac?.Invoke(aname, null); } #if UNITY_STANDALONE_WIN conver.DestoryThis(); #endif }
IEnumerator LoadSong(string p) { // gets info from the file path of the song string[] splitPath = p.Split('/'); string temp = splitPath[splitPath.Length - 1]; string[] temp2 = temp.Split('.'); songName = temp2[0]; songNameInput.text = songName; songURL = string.Format("file://{0}", p); //gets the song UnityWebRequest songRequest = UnityWebRequestMultimedia.GetAudioClip(songURL, AudioType.WAV); yield return(songRequest.SendWebRequest()); DownloadHandlerAudioClip handler = (DownloadHandlerAudioClip)songRequest.downloadHandler; // once its gotten it sets the song clip. songClip = handler.audioClip; song.clip = songClip; songLength = songClip.length; }
IEnumerator DownloadAudioFromServer() { //www = UnityWebRequest.Get("https://echoes.etc.cmu.edu/api/viewer/events/" + eventId + "/sound"); //yield return www.SendWebRequest(); www = UnityWebRequestMultimedia.GetAudioClip("https://file-examples.com/wp-content/uploads/2017/11/file_example_WAV_1MG.wav", AudioType.WAV); yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error + " : " + www.downloadHandler.text); } else { Debug.Log("Download complete!"); download_audioClip = DownloadHandlerAudioClip.GetContent(www); //PlayAudio(); } }
IEnumerator DownloadAndPlay() { UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.WAV); yield return(www.Send()); AudioSource audio = GetComponent <AudioSource>(); if (www.isNetworkError) { Debug.Log(www.error); } else { myClip = DownloadHandlerAudioClip.GetContent(www); audio.clip = myClip; status = "Playing"; BGMsetting.BGM.Pause(); audio.Play(); Invoke("stop", audio.clip.length); } }
private static AudioClip LoadAudio(string path, bool streamAudio) { using (UnityWebRequest webRequest = UnityWebRequestMultimedia.GetAudioClip("file://" + path, AudioType.UNKNOWN)) { DownloadHandlerAudioClip downloadHandler = webRequest.downloadHandler as DownloadHandlerAudioClip; downloadHandler.streamAudio = streamAudio; webRequest.SendWebRequest(); if (webRequest.isNetworkError || webRequest.isHttpError) { Debug.LogError("Error Loading Audio: " + path); Debug.LogError(webRequest.error); return(null); } while (!webRequest.isDone) { Task.Delay(30); } return(downloadHandler.audioClip); } }
// StreamingAssetsからAudioClipをロードする public static IEnumerator CoLoad( CoroutineReturnValue <AudioClip> ret, string pathInStreamingAssets, bool overrideEnabled = true, bool readable = false) { string url = MakeUrl(pathInStreamingAssets, overrideEnabled); var req = new UnityWebRequest(url); req.method = UnityWebRequest.kHttpVerbGET; AudioType type = AudioType.UNKNOWN; var ext = System.IO.Path.GetExtension(url).ToLower(); switch (ext) { case ".wav": type = AudioType.WAV; break; case ".wave": type = AudioType.WAV; break; case ".ogg": type = AudioType.OGGVORBIS; break; case ".mp3": type = AudioType.MPEG; break; case ".aiff": type = AudioType.AIFF; break; } var handler = new DownloadHandlerAudioClip(url, type); req.downloadHandler = handler; yield return(req.SendWebRequest()); if (req.error != null) { ret.Fail(new System.IO.FileLoadException(url)); } else { ret.Succeed(handler.audioClip); } }
public static async Task <AudioClip> LoadAudioClip(string uri) { UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip( uri, AudioType.WAV ); www.SendWebRequest(); while (!www.isDone) { await Task.Delay(100); } if (!String.IsNullOrEmpty(www.error)) { Debug.LogError($"Audio streaming error: {www.error}"); return(null); } else { return(DownloadHandlerAudioClip.GetContent(www)); } }
private IEnumerator LoadAudio() { var downloadHandler = new DownloadHandlerAudioClip(Songsettings.CurrentSong.AudioFilePath, AudioType.OGGVORBIS); downloadHandler.compressed = false; downloadHandler.streamAudio = true; var uwr = new UnityWebRequest( Songsettings.CurrentSong.AudioFilePath, UnityWebRequest.kHttpVerbGET, downloadHandler, null); var request = uwr.SendWebRequest(); while (!request.isDone) { yield return(null); } audioSource.clip = DownloadHandlerAudioClip.GetContent(uwr); audioLoaded = true; }
//TODO FINISH LOADING ALL MUSIC TO LEVEL BROWSER public IEnumerator LoadMusicFiles(List <AudioClip> musicList, List <string> filesLoc) { foreach (string file in filesLoc) { string levelName = new System.IO.DirectoryInfo(file).Name; levelName = file + "/" + levelName + ".ogg"; using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(levelName, AudioType.OGGVORBIS)) { yield return(www.SendWebRequest()); if (www.result == UnityWebRequest.Result.ConnectionError) { Debug.Log(www.error); } else { musicList.Add(DownloadHandlerAudioClip.GetContent(www)); } } } }
IEnumerator SetAudioClip(string path, AudioSource audioSource, int time = 0) { using (var uwr = UnityWebRequestMultimedia.GetAudioClip(path, AudioType.UNKNOWN)) { //不卡顿的2行代码 ((DownloadHandlerAudioClip)uwr.downloadHandler).compressed = false; ((DownloadHandlerAudioClip)uwr.downloadHandler).streamAudio = true; yield return(uwr.SendWebRequest()); if (uwr.isNetworkError) { Log.E(uwr.error); } else { AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr); audioSource.clip = clip; audioSource.time = time; audioSource.Play(); //播放 } } }
/* IEnumerator LoadAudio() * { * WWW mainW = new WWW(mainAudioPath); * while (!mainW.isDone) * { * yield return null; * } * AudioClip mainAC = mainW.GetAudioClip(true, true); * mainAudioSource.clip = mainAC; * mainAudioSource.Play(); * * WWW www = new WWW(path); * while (!www.isDone) * { * yield return null; * } * AudioClip ac = www.GetAudioClip(true, true); * audioSource.clip = ac; * } */ IEnumerator LoadAudio(string soundName, System.Action <AudioClip> action) { string uri = Application.streamingAssetsPath + "/音频/" + soundName + ".wav"; using (UnityWebRequest request = UnityWebRequestMultimedia.GetAudioClip(uri, AudioType.WAV)) { yield return(request.SendWebRequest()); if (request.isNetworkError || request.isHttpError) { Debug.Log(request.error); } else { AudioClip audioClip = DownloadHandlerAudioClip.GetContent(request); if (action != null) { action.Invoke(audioClip); } } } }
private static AudioClip LoadAudio(string path) { using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip("file://" + path, AudioType.UNKNOWN)) { www.SendWebRequest(); if (www.isNetworkError) { Debug.LogError("Error Loading Audio: " + path); Debug.LogError(www.error); return(null); } else { while (!www.isDone) { Task.Delay(30); } return(DownloadHandlerAudioClip.GetContent(www)); } } }
//load the audio using unitywebrequest to stream the audio file IEnumerator LoadAudio(string songlocation, AudioSource audiosource) { if (File.Exists(songlocation)) { using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip("file:///" + songlocation, AudioType.WAV)) { //wait for the audio file to be ready yield return(www.SendWebRequest()); //check if an error has occurred if (www.isNetworkError) { Debug.Log(www.error); } else { audiosource.clip = DownloadHandlerAudioClip.GetContent(www); } } audiosource.Play(); } }
public IEnumerator GetData() { //прогресс загрузки //DownloadProgress // Создаем загрузчик аудио DownloadHandlerAudioClip downloadHandler = new DownloadHandlerAudioClip("", AudioType.WAV); //Делаем загрузку аудио потоковой downloadHandler.streamAudio = true; UnityWebRequest request = new UnityWebRequest(URL, "GET", downloadHandler, null); // Начинаем загрузку аудио request.SendWebRequest(); AudioClip audioClip = null; //в цикле проверяем завершенность загрузки while (audioClip == null) { try { //пытаемся получить скаченное аудио audioClip = DownloadHandlerAudioClip.GetContent(request); } catch (Exception e) { //возвращает ошибку, что еще не скачано Debug.Log("Exception: " + e.Message); } //проверяю количество загруженых байтов( то есть, из них можна что-то вытянуть, но как?) Debug.Log("Загружено байтов: " + request.downloadedBytes); yield return(0f); } // кладу загруженное аудио в аудиосоурс audioSource.clip = audioClip; audioSource.Play(); yield return(0); }
IEnumerator GetAudioClip(string uri) { using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(uri, AudioType.OGGVORBIS)) { yield return(www.SendWebRequest()); if (www.isNetworkError) { UnityEngine.Debug.Log(www.error); } else { audioFile = DownloadHandlerAudioClip.GetContent(www); Double.TryParse(bpmInput.text, out bpm); timeline.LoadTimingMode(audioFile); yield break; } } }
IEnumerator GetSongFromDifficultyData(BeatSaberMap map) { BeatSaberSong.DifficultyBeatmap data = songDifficultyData[selectedDifficultyIndex]; string directory = Song.directory; if (File.Exists(directory + "/" + Song.songFilename)) { if (Song.songFilename.ToLower().EndsWith("ogg") || Song.songFilename.ToLower().EndsWith("egg")) { UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip($"file:///{Uri.EscapeDataString($"{directory}/{Song.songFilename}")}", AudioType.OGGVORBIS); //Escaping should fix the issue where half the people can't open ChroMapper's editor (I believe this is caused by spaces in the directory, hence escaping) yield return(www.SendWebRequest()); Debug.Log("Song loaded!"); AudioClip clip = DownloadHandlerAudioClip.GetContent(www); if (clip == null) { Debug.Log("Error getting Audio data!"); SceneTransitionManager.Instance.CancelLoading("Error getting Audio data!"); } clip.name = "Song"; BeatSaberSongContainer.Instance.loadedSong = clip; BeatSaberSongContainer.Instance.difficultyData = data; //TransitionToEditor(map, clip, data); } else { Debug.Log("Incompatible file type! WTF!?"); SceneTransitionManager.Instance.CancelLoading("Incompatible audio type!"); } } else { SceneTransitionManager.Instance.CancelLoading("Audio file does not exist!"); Debug.Log("Song does not exist! WTF!?"); Debug.Log(directory + "/" + Song.songFilename); } }
public async UniTask Load() { if (loaded) { Unload(); } var type = AudioTypeExtensions.Detect(Path); // TODO: Load remote mp3 with non-mobile platform (Download with UnityWebRequest first?) // Load .mp3 with NLayer on non-mobile platforms if ( Path.StartsWith("file://") && type == AudioType.MPEG && Application.platform != RuntimePlatform.Android && Application.platform != RuntimePlatform.IPhonePlayer ) { nLayerLoader = new NLayerLoader(Path); AudioClip = nLayerLoader.LoadAudioClip(); } else { using (var request = UnityWebRequestMultimedia.GetAudioClip(Path, type)) { await request.SendWebRequest(); if (request.isNetworkError || request.isHttpError) { Error = request.error; return; } AudioClip = DownloadHandlerAudioClip.GetContent(request); } } loaded = true; }
IEnumerator GetAudioClip(string path, int time = 0) { // using (var uwr = UnityWebRequestMultimedia.GetAudioClip(path, AudioType.MPEG)) // { // yield return uwr.SendWebRequest(); // if (uwr.isNetworkError) // { // Log.E(uwr.error); // yield break; // } // // AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr); // mAudioSource.clip = clip; // mAudioSource.time = time; // mAudioSource.Play(); // mPlayStatus.Value = PlayStatus.Playing; // } using (var uwr = UnityWebRequestMultimedia.GetAudioClip(path, AudioType.UNKNOWN)) { //不卡顿的2行代码 ((DownloadHandlerAudioClip)uwr.downloadHandler).compressed = false; ((DownloadHandlerAudioClip)uwr.downloadHandler).streamAudio = true; yield return(uwr.SendWebRequest()); if (uwr.isNetworkError) { Log.E(uwr.error); } else { AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr); mAudioSource.clip = clip; mAudioSource.time = time; mAudioSource.Play();//播放 mPlayStatus.Value = PlayStatus.Playing; } } }
IEnumerator GenerateAudioClip(AudioSource audioSource, string filenameWithExtension, bool play = false) { if (memorizedClips.ContainsKey(filenameWithExtension)) { audioSource.clip = memorizedClips[filenameWithExtension]; } else { string filePath = Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/Chroma/Audio/" + filenameWithExtension; ChromaLogger.Log("Searching for audio file " + filePath, ChromaLogger.Level.DEBUG, false); using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(filePath, AudioType.WAV)) { yield return(www.SendWebRequest()); if (www.isHttpError || www.isNetworkError) { ChromaLogger.Log(www.error, ChromaLogger.Level.ERROR, false); yield break; } else { ChromaLogger.Log("Found sound " + filenameWithExtension, ChromaLogger.Level.ERROR, false); AudioClip downloadedClip = DownloadHandlerAudioClip.GetContent(www); if (downloadedClip == null) { ChromaLogger.Log("Failed to find sound " + filePath, ChromaLogger.Level.WARNING, false); yield break; } audioSource.clip = downloadedClip; memorizedClips[filenameWithExtension] = downloadedClip; } } } if (play) { audioSource.Play(); } yield break; }
private static AudioClip LoadUnityAudioClip(string ftype, string filePath) { try { Utils.Log("Loading Unity clip: " + filePath); // Load the audio clip into memory. #if false #if false filePath = filePath.Replace(@"\", "/"); filePath = Path.GetFileName(filePath); Debug.Log("filepath.Replace:" + filePath); AudioClip clip = Resources.Load(Path.GetFileNameWithoutExtension(filePath)) as AudioClip; if (clip == null) { Debug.Log("LoadUnityAudioclip loading clip failed"); } #else UnityWebRequest uwr = UnityWebRequestMultimedia.GetAudioClip(filePath, ftype == ".WAV" ? AudioType.WAV : AudioType.OGGVORBIS); AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr); #endif #else WWW www = new WWW("file://" + filePath); AudioClip clip = www.GetAudioClip(); #endif clip.name = Path.GetFileNameWithoutExtension(filePath); Utils.Log("Clip name: " + clip.name + ", load state: " + clip.loadState); return(clip); } catch (Exception ex) { Debug.LogError("[STED] Error loading audio file " + filePath + ": " + ex.Message + "\r\n" + ex.StackTrace); return(null); } }
IEnumerator GetAudioClips(FileObj fileObj) { string basePath = fileObj.directory.FullName; Debug.Log(basePath); for (int i = 0; i < fileObj.info.audios.Count; i++) { string fileName = fileObj.info.audios[i]; string path = Path.Combine(basePath, fileName); Debug.Log(path); audios.Add(null); if (File.Exists(path)) { Debug.Log($"{i}: {path}"); } else { Debug.Log($"{i}: audio file {path} not exists."); continue; } using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(path, AudioType.WAV)) { yield return(www.SendWebRequest()); if (www.isNetworkError) { Debug.Log(path + " : ERROR"); break; } audios[audios.Count - 1] = DownloadHandlerAudioClip.GetContent(www); } } }
private IEnumerator LoadTrack(int songIndex) { // load track string assetId = playlist[songIndex] + ".mp3"; // string url = "https://raidpr.secure.omnis.com/clients/demo/br/sb/Music/" + assetId; // string url = "https://www.lms.mybridgestoneeducation.com/Switchback/Music/" + assetId; string url = GetURL() + assetId; // Debug.Log("LoadTrack.url: " + url); DownloadHandlerAudioClip downloadHandler = new DownloadHandlerAudioClip(url, AudioType.MPEG); downloadHandler.streamAudio = true; UnityWebRequest request = new UnityWebRequest(url) { downloadHandler = downloadHandler, certificateHandler = new SSLAuth() }; request.SendWebRequest(); while (!request.isDone) { // Debug.Log("request.downloadProgress: " + request.downloadProgress); yield return(new WaitForSeconds(0.1f)); } if (queueIsPlaying) { AudioClip clipa = DownloadHandlerAudioClip.GetContent(request); mPlayerGO.GetComponent <AudioSource>().clip = clipa; mPlayerGO.GetComponent <AudioSource>().volume = 0.25f; mPlayerGO.GetComponent <AudioSource>().Play(); isPlaying = true; } HasInitialized = true; }
public static IEnumerator FetchAudioClip(string url, AudioType audioType, Action <AudioClip> OnSuccess, Action <string> OnFail) { //NOTE(Brian): This closure is called when the download is a success. Action <UnityWebRequest> OnSuccessInternal = (request) => { if (OnSuccess != null) { bool supported = true; #if UNITY_EDITOR supported = audioType != AudioType.MPEG; #endif AudioClip ac = null; if (supported) { ac = DownloadHandlerAudioClip.GetContent(request); } OnSuccess.Invoke(ac); } }; Action <string> OnFailInternal = (error) => { if (OnFail != null) { OnFail.Invoke(error); } }; var req = UnityWebRequestMultimedia.GetAudioClip(url, audioType); yield return(FetchAsset(url, req, OnSuccessInternal, OnFailInternal)); }
public static WebRequestAsyncOperation FetchAudioClip(string url, AudioType audioType, Action <AudioClip> OnSuccess, Action <string> OnFail) { //NOTE(Brian): This closure is called when the download is a success. Action <UnityWebRequest> OnSuccessInternal = (request) => { if (OnSuccess != null) { bool supported = true; #if UNITY_EDITOR supported = audioType != AudioType.MPEG; #endif AudioClip ac = null; if (supported) { ac = DownloadHandlerAudioClip.GetContent(request); } OnSuccess.Invoke(ac); } }; Action <UnityWebRequest> OnFailInternal = (request) => { if (OnFail != null) { OnFail.Invoke(request.error); } }; return(WebRequestController.i.GetAudioClip( url: url, audioType: audioType, OnSuccess: OnSuccessInternal, OnFail: OnFailInternal)); }