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"); } }
/// <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); } }
/// <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"); }
public void BufferData(AudioFormatEnum format, int frequency, Byte[] data, int dataLength) { Al.alBufferData (ID, (int)format, data, dataLength, frequency); OpenAlException.CheckAl (); }
public void BufferData(AudioFormatEnum format, int frequency, Byte[] data) { this.BufferData (format, frequency, data, data.Length); }
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 (); } }
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; }