Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }