예제 #1
0
 public void Start()
 {
     if (_isWorking)
     {
         return;
     }
     _isWorking    = true;
     _analyzeThead = ThreadEx.ThreadCall(AnalyzeThead);
 }
예제 #2
0
        public override void Start()
        {
            if (_isworking)
            {
                return;
            }
            _isworking = true;

            _CaptureThread = ThreadEx.ThreadCall(CaptureThread);
        }
예제 #3
0
 public override void Start()
 {
     if (_isworking)
     {
         return;
     }
     _isworking = true;
     ResetPosition();
     _curPlayTime = 0;
     _playThread  = ThreadEx.ThreadCall(PlayThread);
 }
예제 #4
0
        public virtual void Start()
        {
            if (_isworking)
            {
                return;
            }
            _isworking = true;

            OnStart();

            _threadTSStreamResolve = ThreadEx.ThreadCall(TSStreamResolveThread);
        }
예제 #5
0
 public void Start()
 {
     if (_isworking)
     {
         return;
     }
     _isworking = true;
     ResetPosition();
     _curPlayMediaTimetick = 0;
     _playThread           = ThreadEx.ThreadCall(PlayThread);
     _yuvDraw.Start();
 }
예제 #6
0
 private void PlayThread()
 {
     _PlayBackwardThread = ThreadEx.ThreadCall(PlayBackwardThread);
     while (_isworking)
     {
         MediaFrame frame = null;
         if (_isForwardPlay)
         {
             lock (_queue) {
                 if (_queue.Count > 0 && !_isPaused)
                 {
                     frame = _queue.Dequeue();
                 }
                 else
                 {
                     frame = null;
                 }
             }
             if (frame != null)
             {
                 PlayForward(frame);
             }
             else
             {
                 ThreadEx.Sleep(10);
             }
         }
         else
         {
             lock (_queue) {
                 if (_queue.Count > 0 && !_isPaused)
                 {
                     frame = _queue.Dequeue();
                 }
                 else
                 {
                     frame = null;
                 }
             }
             if (frame != null)
             {
                 PlayBackward(frame);
             }
             else
             {
                 ThreadEx.Sleep(10);
             }
         }
     }
 }
예제 #7
0
        public virtual void Stop()
        {
            if (!_isworking)
            {
                return;
            }
            _isworking = false;

            OnStop();

            _threadTSStreamResolve = ThreadEx.ThreadCall(TSStreamResolveThread);

            if (_fileStream != null)
            {
                _fileStream.Close();
            }
        }
예제 #8
0
 public void Start()
 {
     if (_isworking)
     {
         return;
     }
     _isworking           = true;
     _firstVideoFrameTime = 0;
     _firstAudioFrameTime = 0;
     _firstFrameTime      = 0;
     _startPlayTick       = 0;
     _queue.Clear();
     _cache.Clear();
     _vp.Start();
     _ap.Start();
     _playThread = ThreadEx.ThreadCall(PlayThread);
 }