コード例 #1
0
ファイル: VideoPlayer.cs プロジェクト: mutita/anpr
        private void trackBar1_Scroll_1(object sender, EventArgs e)
        {
            bool playMode = m_Play;

            if (trackBar1.Value - PreviousScrollValue > 0)
            {
                ScrollDirectionWasForward = true;
            }
            else
            {
                ScrollDirectionWasForward = false;
            }

            StopPlay();

            lock (jpegArrayLock)
            {
                m_JpegPlayIndex = ((trackBar1.Value * jpegsToPlay.Length) / 100);

                if (m_JpegPlayIndex < 0)
                {
                    m_JpegPlayIndex = 0;
                }
                if (m_JpegPlayIndex >= jpegsToPlay.Length)
                {
                    m_JpegPlayIndex = jpegsToPlay.Length - 1;
                }

                m_PlayControl.Reset();
            }

            if (playMode == false)
            {
                // play one frame
                PlayOneFrame(ScrollDirectionWasForward);
            }

            if (playMode == true)
            {
                StartPlay();
            }

            PreviousScrollValue = trackBar1.Value;
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: mutita/anpr
        void PlayLoop()
        {
            m_PlayControl = new PlayControl();
            m_PlayControl.Reset();

            while (!m_Stop)
            {
                while (m_Play)
                {
                    if (m_PlayControl.intervalCounter >= (int)m_PlayControl.interval.TotalMilliseconds)
                    {
                        lock (jpegArrayLock)
                        {
                            m_PlayControl.previousFrameTime = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex]);
                        }

                        this.BeginInvoke((MethodInvoker) delegate { this.PushNextJpeg(); });

                        if (m_JpegPlayIndex == jpegsToPlay.Length - 1)
                        {
                            m_Play = false;
                            this.BeginInvoke((MethodInvoker) delegate { this.StopPlay(); });
                            continue;
                        }
                        DateTime nexttimestamp = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex + 1]);
                        m_PlayControl.interval = nexttimestamp.Subtract(m_PlayControl.previousFrameTime);

                        m_JpegPlayIndex++;
                        m_PlayControl.intervalCounter = 0;
                    }
                    if (m_Stop)
                    {
                        break;
                    }
                    TimeSpan playtime = m_PlayControl.interval.Add(new TimeSpan(0, 0, 0, 0, m_PlayControl.intervalCounter));
                    this.BeginInvoke((MethodInvoker) delegate { this.PushPlayStats(m_PlayControl.previousFrameTime.Add(playtime).ToString(m_AppData.TimeFormatStringForFileNames), m_PlayControl.previousFrameTime.ToString(m_AppData.TimeFormatStringForFileNames)); });
                    m_PlayControl.intervalCounter++;
                    Thread.Sleep(1);
                }

                Thread.Sleep(1);
            }
        }
コード例 #3
0
ファイル: Player.cs プロジェクト: mutita/anpr
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            StopPlay();
            lock (jpegArrayLock)
            {
                m_JpegPlayIndex = ((trackBar1.Value * jpegsToPlay.Length) / 100);

                if (m_JpegPlayIndex < 0)
                {
                    m_JpegPlayIndex = 0;
                }
                if (m_JpegPlayIndex >= jpegsToPlay.Length)
                {
                    m_JpegPlayIndex = jpegsToPlay.Length - 1;
                }

                m_PlayControl.Reset();
            }
            StartPlay();
        }
コード例 #4
0
ファイル: Player.cs プロジェクト: anndream/anpr-1
        void PlayLoop()
        {
            m_PlayControl = new PlayControl();
            m_PlayControl.Reset();

            while (!m_Stop)
            {
                while (m_Play)
                {
                    if (m_PlayControl.intervalCounter >= (int)m_PlayControl.interval.TotalMilliseconds)
                    {
                        lock (jpegArrayLock)
                        {
                            m_PlayControl.previousFrameTime = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex]);
                        }

                        this.BeginInvoke((MethodInvoker)delegate { this.PushNextJpeg(); });

                        if (m_JpegPlayIndex == jpegsToPlay.Length - 1)
                        {
                            m_Play = false;
                            this.BeginInvoke((MethodInvoker)delegate { this.StopPlay(); });
                            continue;
                        }
                        DateTime nexttimestamp = PATHS.GetTimeFromFile(jpegsToPlay[m_JpegPlayIndex + 1]);
                        m_PlayControl.interval = nexttimestamp.Subtract(m_PlayControl.previousFrameTime);

                        m_JpegPlayIndex++;
                        m_PlayControl.intervalCounter = 0;

                    }
                    if (m_Stop) break;
                    TimeSpan playtime = m_PlayControl.interval.Add(new TimeSpan(0, 0, 0, 0, m_PlayControl.intervalCounter));
                    this.BeginInvoke((MethodInvoker)delegate { this.PushPlayStats(m_PlayControl.previousFrameTime.Add(playtime).ToString(m_AppData.TimeFormatStringForFileNames), m_PlayControl.previousFrameTime.ToString(m_AppData.TimeFormatStringForFileNames)); });
                    m_PlayControl.intervalCounter++;
                    Thread.Sleep(1);

                }

                Thread.Sleep(1);
            }
        }