Exemple #1
1
        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();
            }
        }
    }
Exemple #4
0
        /// <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);
            }
        }
Exemple #5
0
    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 = "";
    }
Exemple #6
0
    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;
            }
        }
    }
Exemple #7
0
    /// <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;
    }
Exemple #9
0
    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();
        }
    }
Exemple #10
0
    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);
        }
    }
Exemple #11
0
    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);
        }
    }
Exemple #12
0
        // 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);
            }
        }
Exemple #13
0
        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));
            }
        }
Exemple #14
0
    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;
    }
Exemple #15
0
    //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(); //播放
            }
        }
    }
Exemple #17
0
    /* 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);
                }
            }
        }
    }
Exemple #18
0
    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));
            }
        }
    }
Exemple #19
0
    //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();
        }
    }
Exemple #20
0
    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);
    }
Exemple #21
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;
                }
            }
        }
Exemple #22
0
    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);
        }
    }
Exemple #23
0
    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;
            }
        }
    }
Exemple #25
0
        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;
        }
Exemple #26
0
        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);
            }
        }
Exemple #27
0
    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;
    }
Exemple #29
0
        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));
        }
Exemple #30
0
        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));
        }