Beispiel #1
0
 public AudioCaptureDevice(string deviceName, AudioFormatEnum format, int frequency, int maxSampleCount)
     : base(false)
 {
     Handle = Alc.alcCaptureOpenDevice(deviceName, frequency, (int)format, maxSampleCount);
     this.format = format;
     this.maxSampleCount = maxSampleCount;
     this.frequency = frequency;
     if (Handle == IntPtr.Zero)
     {
         throw new OpenAlException("The Device failed to initialize");
     }
 }
Beispiel #2
0
        /// <summary>
        /// Converts a AudioFormatEnum value to a corresponding string value
        /// </summary>
        /// <param name="enumValue">The AudioFormatEnum value to convert</param>
        /// <returns>The representative string value</returns>
        public static string ToValue(AudioFormatEnum enumValue)
        {
            switch (enumValue)
            {
            //only valid enum elements can be used
            //this is necessary to avoid errors
            case AudioFormatEnum.MP3:
            case AudioFormatEnum.WAV:
                return(stringValues[(int)enumValue]);

            //an invalid enum value was requested
            default:
                return(null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Create capture buffer, output wave file and stream recorded samples to disk every 50 milliseconds
        /// </summary>
        public void StreamAudio()
        {
            AudioListener.Position    = new Vector3D(0, 0, 0);
            AudioListener.Velocity    = new Vector3D(0, 0, 0);
            AudioListener.Orientation = new Orientation(new Vector3D(1, 1, 0), new Vector3D(0, 1, 0));
            Byte[] recordedData = null;

            AudioFormatEnum HQcaptureFormat     = AudioFormatEnum.Stereo16;
            int             HQcaptureFrequency  = 44100;
            int             HQcaptureBufferSize = 1028000;

            //Console.WriteLine("Creating File {0}", Environment.CurrentDirectory + "\\test.wav");

            if (_FileName == "")
            {
                _FileName = "undefined.wav";
            }

            WaveFileWriter wave = new WaveFileWriter();

            wave.CreateFile(_FileName, HQcaptureFormat);

            using (AudioCaptureDevice g = new AudioCaptureDevice(null, HQcaptureFormat, HQcaptureFrequency, HQcaptureBufferSize))
            {
                //Console.WriteLine("Started Recording (press Enter To Stop)");
                g.Start();

                while (OpenALRecoding)
                {
                    Thread.Sleep(50);
                    int samplecount = g.AvaliabeSampleCount;
                    recordedData = g.CaptureSamples();
                    wave.WriteCaptured(recordedData);
                }

                g.Stop();
                //Console.WriteLine("Stopped Recording");
            }
            wave.CloseFile();
            //Console.WriteLine("File Saved");
        }
Beispiel #4
0
 public void BufferData(AudioFormatEnum format, int frequency, Byte[] data, int dataLength)
 {
     Al.alBufferData (ID, (int)format, data, dataLength, frequency);
     OpenAlException.CheckAl ();
 }
Beispiel #5
0
 public void BufferData(AudioFormatEnum format, int frequency, Byte[] data)
 {
     this.BufferData (format, frequency, data, data.Length);
 }
Beispiel #6
0
 public static int GetSampleSize(AudioFormatEnum format)
 {
     switch (format)
     {
         case AudioFormatEnum.Mono16:
             return 2;
         case AudioFormatEnum.Mono8:
             return 1;
         case AudioFormatEnum.Stereo16:
             return 4;
         case AudioFormatEnum.Stereo8:
             return 2;
         default:
             throw new Exception ();
     }
 }
Beispiel #7
0
 public AudioSection(string id, int delayInMs, string title, string caption, int durationInSeconds, AudioFormatEnum format, string url, string encodingType, bool downloadable, bool buffer, bool animateEmotion) : base(id, SectionTypeEnum.Audio, delayInMs)
 {
     this.Title             = title;
     this.Caption           = caption;
     this.DurationInSeconds = durationInSeconds;
     this.Format            = format;
     this.Url            = url;
     this.EncodingType   = encodingType;
     this.Downloadable   = downloadable;
     this.Buffer         = buffer;
     this.AnimateEmotion = animateEmotion;
 }