예제 #1
0
        private void TitleChangeDetector()
        {
            this.Title = string.Empty;
            DateTime startTime    = DateTime.Now;
            string   pendingValue = string.Empty;

            while (this.BrowserRunning)
            {
                string currentTitle = this.ChromeJson.GetValue("title");
                if (this.Title != currentTitle)
                {
                    if (pendingValue == currentTitle)
                    {
                        if (DateTime.Now.Subtract(startTime).Ticks / TimeSpan.TicksPerMillisecond >= this.MinTitleAgeForChangeDetection)
                        {
                            this.Title = pendingValue;
                            StatusManager.Status("Title Changed: " + this.Title);

                            // trigger event
                            if (TitleChangeEvent != null)
                            {
                                this.TitleChangeEvent(this, null);
                            }
                        }
                    }
                    else
                    {
                        startTime    = DateTime.Now;
                        pendingValue = currentTitle;
                    }
                }

                Thread.Sleep(120);
            }
        }
예제 #2
0
파일: Recorder.cs 프로젝트: etray/NCorder
 private void Run()
 {
     this.Reset();
     StatusManager.Status("Recorder starting...");
     StatusManager.Indicator(true);
     this.CaptureDevice.StartRecording();
     while (this.KeepRecording)
     {
         Thread.Sleep(120);
     }
     StatusManager.Status("Recorder stopping...");
     this.CaptureDevice.StopRecording();
     StatusManager.Indicator(false);
 }
예제 #3
0
        public void NavigateToNextUrl()
        {
            KeyValuePair <string, string>?item = this.NextItem();
            string url = item.GetValueOrDefault().Value;

            if (item != null && !string.IsNullOrWhiteSpace(url))
            {
                StatusManager.Status("Navigating to: " + url);
                this.Driver.NavigateToUrl(url);
            }
            else
            {
                StatusManager.Status("Navigating to: about:blank");
                this.Driver.NavigateToUrl("about:blank");
                this.Driver.Recorder.Stop();
            }
        }
예제 #4
0
        private void SilenceDetector()
        {
            DateTime silenceStart     = DateTime.Now;
            bool     previouslySilent = true;

            while (this.BrowserRunning)
            {
                if (!this.Recorder.SilenceDetected)
                {
                    if (previouslySilent)
                    {
                        StatusManager.Status("Sound detected.");
                        previouslySilent = false;
                        if (this.SoundDetectedEvent != null)
                        {
                            this.SoundDetectedEvent(this, null);
                        }
                    }

                    silenceStart = DateTime.Now;
                }
                else
                {
                    if (!previouslySilent)
                    {
                        if (DateTime.Now.Subtract(silenceStart).Ticks / TimeSpan.TicksPerMillisecond >= this.MinIntervalForSilenceDetection)
                        {
                            StatusManager.Status("Silence Detected");
                            previouslySilent = true;
                            // trigger event
                            if (this.SilenceDetectedEvent != null)
                            {
                                this.SilenceDetectedEvent(this, null);
                            }
                        }
                    }
                }

                Thread.Sleep(20);
            }
        }
예제 #5
0
 public void WriteOutBuffer(RecordingBuffer buffer, string outputFile)
 {
     StatusManager.Status("Saving file: " + outputFile);
     byte[] waveFile = this.ConvertToWave(buffer.Samples, buffer.WaveFormat);
     this.WriteMP3(waveFile, outputFile);
 }
예제 #6
0
파일: Recorder.cs 프로젝트: etray/NCorder
 private void RecordingStopped(object sender, NAudio.Wave.StoppedEventArgs e)
 {
     StatusManager.Status("WSAPI Recorder stopped.");
 }