Exemple #1
0
    /* Stop Capturing */
    public bool Stop()
    {
        if (!isRecording)
        {
            return(false);
        }

        // Stop Capturing Audio
        if (recordAudio)
        {
            audioSource.StopRecording();
        }

        // Kill Timers
        PInvoke.timeKillEvent(captureTimerId);
        PInvoke.timeKillEvent(durationTimerId);

        captureTimerId        = 0;
        captureTimerDelegate  = null;
        durationTimerId       = 0;
        durationTimerDelegate = null;

        status      = "Idle";
        isRecording = false;
        return(isRecording);
    }
Exemple #2
0
    /// <summary>
    /// Start Recording Timers
    /// </summary>
    private void StartTimers()
    {
        // Enable Capture Timer
        durationTimerDelegate = new PInvoke.MMTimerProc(DurationTick);
        durationTimerId       = PInvoke.timeSetEvent(100, 0, durationTimerDelegate, 0, 1);

        // Enable Duration Timer
        captureTimerDelegate = new PInvoke.MMTimerProc(CaptureTick);
        captureTimerId       = PInvoke.timeSetEvent((uint)(1000 / fps), 0, captureTimerDelegate, 0, 1);
    }
Exemple #3
0
    /// <summary>
    /// Stop Recording Timers
    /// </summary>
    private void StopTimers()
    {
        // Kill Timers
        PInvoke.timeKillEvent(captureTimerId);
        PInvoke.timeKillEvent(durationTimerId);

        // Nullify
        captureTimerId        = 0;
        captureTimerDelegate  = null;
        durationTimerId       = 0;
        durationTimerDelegate = null;
    }
Exemple #4
0
    /* Start Capturing */
    public bool Start(bool recordAudio = false)
    {
        if (isRecording)
        {
            return(false);
        }

        // Reset
        status = "Pending";
        frames = 0;

        // Create Temporary Directory
        CreateTemporaryPath();

        // Setup Audio Recording
        if (recordAudio)
        {
            this.recordAudio              = recordAudio;
            audioSource                   = new WasapiLoopbackCapture();
            audioSource.DataAvailable    += new EventHandler <WaveInEventArgs>(WriteAudio);
            audioSource.RecordingStopped += new EventHandler <StoppedEventArgs>(RecordingStopped);
            audioFile = new WaveFileWriter(Path.Combine(tempPath, "audio.wav"), audioSource.WaveFormat);
        }

        // Enable Capture Timer
        durationTimerDelegate = new PInvoke.MMTimerProc(DurationTick);
        durationTimerId       = PInvoke.timeSetEvent(100, 0, durationTimerDelegate, 0, 1);

        // Enable Duration Timer
        captureTimerDelegate = new PInvoke.MMTimerProc(CaptureTick);
        captureTimerId       = PInvoke.timeSetEvent((uint)(1000 / fps), 0, captureTimerDelegate, 0, 1);

        if (recordAudio)
        {
            audioSource.StartRecording();
        }

        status      = "Recording";
        isRecording = true;
        return(isRecording);
    }
Exemple #5
0
    /// <summary>
    /// Stop Recording Timers
    /// </summary>
    private void StopTimers()
    {
        // Kill Timers
        PInvoke.timeKillEvent(captureTimerId);
        PInvoke.timeKillEvent(durationTimerId);

        // Nullify
        captureTimerId = 0;
        captureTimerDelegate = null;
        durationTimerId = 0;
        durationTimerDelegate = null;
    }
Exemple #6
0
    /// <summary>
    /// Start Recording Timers
    /// </summary>
    private void StartTimers()
    {
        // Enable Capture Timer
        durationTimerDelegate = new PInvoke.MMTimerProc(DurationTick);
        durationTimerId = PInvoke.timeSetEvent(100, 0, durationTimerDelegate, 0, 1);

        // Enable Duration Timer
        captureTimerDelegate = new PInvoke.MMTimerProc(CaptureTick);
        captureTimerId = PInvoke.timeSetEvent((uint)(1000 / fps), 0, captureTimerDelegate, 0, 1);
    }