public bool AddSound(string filename, string dicname) { if (!File.Exists(filename)) { return(false); } if (sounds.ContainsKey(dicname)) { return(true); } try { FMODEX.Sound sound = null; FMODEX.RESULT result; result = system.createSound(filename, FMODEX.MODE.OPENONLY | FMODEX.MODE.ACCURATETIME, ref sound); CheckError(result); var stream = GetStream(sound); sound.release(); CheckError(result); AddSound(stream, dicname); return(true); } catch { MessageBox.Show(PPDExceptionContentProvider.Provider.GetContent(PPDExceptionType.SoundReadError)); return(false); } }
public bool AddSound(byte[] data, string dicname) { if (sounds.ContainsKey(dicname)) { return(true); } try { // first write to temp file var temp = Path.GetTempFileName(); File.WriteAllBytes(temp, data); FMODEX.Sound sound = null; FMODEX.RESULT result; result = system.createSound(temp, FMODEX.MODE.OPENONLY | FMODEX.MODE.ACCURATETIME, ref sound); CheckError(result); var stream = GetStream(sound); AddSound(stream, dicname); sound.release(); if (File.Exists(temp)) { File.Delete(temp); } return(true); } catch { MessageBox.Show(PPDExceptionContentProvider.Provider.GetContent(PPDExceptionType.SoundReadError)); return(false); } }
public void GetSoundInfo(string filename, out FMODEX.SOUND_TYPE soundType, out FMODEX.SOUND_FORMAT soundFormat, out int channelCount, out int bits, out float length) { soundType = FMODEX.SOUND_TYPE.AIFF; soundFormat = FMODEX.SOUND_FORMAT.AT9; channelCount = 0; bits = 0; length = 0; uint uLength = 0; FMODEX.Sound sound = null; FMODEX.RESULT result; result = system.createSound(filename, FMODEX.MODE.HARDWARE, ref sound); CheckError(result); result = sound.getFormat(ref soundType, ref soundFormat, ref channelCount, ref bits); CheckError(result); result = sound.getLength(ref uLength, FMODEX.TIMEUNIT.MS); length = uLength / 1000f; CheckError(result); result = sound.release(); CheckError(result); }