Пример #1
0
 public AudioPlayer(DiscordVoiceConfig __config)
 {
     config = __config;
     callbackInfo = WaveCallbackInfo.FunctionCallback();
     outputDevice = new WaveOut(callbackInfo);
     bufferedWaveProvider = new BufferedWaveProvider(new WaveFormat(48000, 16, config.Channels));
 }
Пример #2
0
 /// <summary>
 /// Prepares a Wave input device for recording
 /// </summary>
 public WaveIn(WaveCallbackInfo callbackInfo)
 {
     this.DeviceNumber = 0;
     this.WaveFormat = new WaveFormat(8000, 16, 1);
     this.BufferMillisconds = 100;
     this.NumberOfBuffers = 3;
     this.callback = new WaveInterop.WaveCallback(Callback);
     this.callbackInfo = callbackInfo;
     callbackInfo.Connect(this.callback);
 }
Пример #3
0
        /// <summary>
        /// Opens a WaveOut device
        /// </summary>
        public WaveOut(WaveCallbackInfo callbackInfo)
        {
            // set default values up
            this.DeviceNumber = 0;
            this.DesiredLatency = 300;
            this.NumberOfBuffers = 3;

            this.callback = new WaveInterop.WaveCallback(Callback);
            this.waveOutLock = new object();
            this.callbackInfo = callbackInfo;
            callbackInfo.Connect(this.callback);
        }
Пример #4
0
        /// <summary>
        /// Opens a WaveOut device
        /// </summary>
        public WaveOut(WaveCallbackInfo callbackInfo)
        {
            this.syncContext = SynchronizationContext.Current;
            // set default values up
            this.DeviceNumber = 0;
            this.DesiredLatency = 300;
            this.NumberOfBuffers = 2;

            this.callback = new WaveInterop.WaveCallback(Callback);
            this.waveOutLock = new object();
            this.callbackInfo = callbackInfo;
            callbackInfo.Connect(this.callback);
        }
Пример #5
0
 /// <summary>
 /// Prepares a Wave input device for recording
 /// </summary>
 public WaveIn(WaveCallbackInfo callbackInfo)
 {
     syncContext = SynchronizationContext.Current;
     if ((callbackInfo.Strategy == WaveCallbackStrategy.NewWindow || callbackInfo.Strategy == WaveCallbackStrategy.ExistingWindow) &&
         syncContext == null)
     {
         throw new InvalidOperationException("Use WaveInEvent to record on a background thread");
     }
     this.DeviceNumber = 0;
     this.WaveFormat = new WaveFormat(8000, 16, 1);
     this.BufferMilliseconds = 100;
     this.NumberOfBuffers = 3;
     this.callback = new WaveInterop.WaveCallback(Callback);
     this.callbackInfo = callbackInfo;
     callbackInfo.Connect(this.callback);
 }
Пример #6
0
 /// <summary>
 /// Dispose pattern
 /// </summary>
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (recording)
             StopRecording();
         CloseWaveInDevice();
         if (callbackInfo != null)
         {
             callbackInfo.Disconnect();
             callbackInfo = null;
         }
     }
 }
Пример #7
0
 /// <summary>
 /// Creates a WaveIn device using the specified window handle for callbacks
 /// </summary>
 /// <param name="windowHandle">A valid window handle</param>
 public WaveIn(IntPtr windowHandle)
     : this(WaveCallbackInfo.ExistingWindow(windowHandle))
 {
 }
Пример #8
0
 /// <summary>
 /// Prepares a Wave input device for recording
 /// </summary>
 public WaveIn()
     : this(WaveCallbackInfo.NewWindow())
 {
 }