Quantcast
Channel: Latest Questions on Unity Answers
Viewing all articles
Browse latest Browse all 171066

Download an audio file in background without lags.

$
0
0
Hello, I have a problem with loading an audio file from HDD, more precisely while it loads, the game stops until it is fully downloaded even if I use yield's or other coroutine methods. Am I doing something wrong or it has to be done using streaming? (which I once used but want to avoid it this time, too much work and code involved) Here's the code am using right now: private var musicFolderContents : String[]; var customPlaylistSwitch : int[]; var musicPlaylist : int[]; var actualMusicID : int; private var externalMusicScan : int; var playNextTrack : boolean; var actualAudioTrack : String; function MusicPlayer (){ if (playNextTrack){ // Play music from internal library if (musicPlaylist[actualMusicID] < originalMusic.length){ audio.clip = originalMusic[musicPlaylist[actualMusicID]]; audio.Play(); } // Play music from external folder else if (musicPlaylist[actualMusicID] > originalMusic.length){ actualAudioTrack = Path.GetFileNameWithoutExtension("file://"+musicFolderContents[musicPlaylist[actualMusicID]-originalMusic.length]); LoadMusicFile(); } actualMusicID = (actualMusicID + 1) % musicPlaylist.length; playNextTrack = false; } } function LoadMusicFile (){ var HDDaudioFile : WWW; if (Application.isEditor) HDDaudioFile = new WWW ("file://"+musicFolderContents[musicPlaylist[actualMusicID]-originalMusic.length]); else HDDaudioFile = new WWW ("file://"+Application.dataPath+"/Music/"+musicFolderContents[musicPlaylist[actualMusicID]-originalMusic.length]); yield HDDaudioFile; if (HDDaudioFile.isDone){ var HDDLoadedFile : AudioClip = HDDaudioFile.GetAudioClip(false, false); audio.clip = HDDLoadedFile; while (!audio.isPlaying){ if (audio.clip == null){ playNextTrack = true; break; } if (audio.clip.isReadyToPlay) audio.Play(); else yield; } } }

Viewing all articles
Browse latest Browse all 171066

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>