public void PreloadSfx([CanBeNull] string fileName, [NotNull] IAudioFormat format) { if (fileName == null) { return; } fileName = Path.GetFullPath(fileName); if (!File.Exists(fileName)) { throw new FileNotFoundException("Audio file is not found.", fileName); } var key = Environment.OSVersion.Platform == PlatformID.Win32NT ? fileName.ToLowerInvariant() : fileName; if (_preloaded.ContainsKey(key)) { return; } using (var waveStream = format.Read(fileName)) { byte[] data; var buf = new byte[1024]; using (var memoryStream = new MemoryStream()) { var read = waveStream.Read(buf, 0, buf.Length); while (read > 0) { memoryStream.Write(buf, 0, read); if (read < buf.Length) { break; } read = waveStream.Read(buf, 0, buf.Length); } data = memoryStream.ToArray(); } var waveFormat = waveStream.WaveFormat; _preloaded.Add(key, (data, waveFormat)); } }
public Music CreateMusic([NotNull] string fileName, [NotNull] IAudioFormat format, float volume) { var audio = format.Read(fileName); return(CreateMusic(audio, volume, true)); }
public Sound LoadSoundDirect([NotNull] string fileName, [NotNull] IAudioFormat format, bool manageResult) { using (var stream = format.Read(fileName)) { return(LoadSoundDirect(fileName, stream, manageResult)); } }