コード例 #1
0
ファイル: App.cs プロジェクト: ming4883/TOB
            public static void Stop()
            {
                lock (_Sync)
                {
                    _Playing = false;
                }

                lock (_Sync)
                {
                    if (null != _SyncThread)
                    {
                        _SyncThread.Abort();
                        _SyncThread = null;

                    }
                    if (null != _AudioProc)
                    {
                        _AudioProc.Stop();
                        _AudioProc.Dispose();
                        _AudioProc = null;
                    }

                    if (null != _VideoProc)
                    {
                        _VideoProc.Stop();
                        _VideoProc.Dispose();
                        _VideoProc = null;
                    }

                    if (null != _PlaybackForm)
                    {
                        _PlaybackForm.Close();
                        _PlaybackForm.Dispose();
                        _PlaybackForm = null;
                    }
                }
            }
コード例 #2
0
ファイル: App.cs プロジェクト: ming4883/TOB
            public static bool Start()
            {
                _LastIP = "127.0.0.1";

                AdbKill(ADB_PATH);

                if (!AdbPortForward(ADB_PATH, 8080))
                {
                    _LastIP = Settings.IP;
                    Log.WriteLine ("adb port forward failed, use remote ip: " + _LastIP);
                }

                lock (_Sync)
                {
                    _PlaybackForm = UI.ShowPlaybackForm (Settings.FULLSCREEN);

                    StartAudioAndVideoPlayback (_LastIP);

                    if (!IsRemoteAlive())
                    {
                        Stop();
                        return false;
                    }

                    SetFocus(_LastIP);

                    _FirstReset = true;
                    _Playing = true;

                    _SyncThread = new Thread(new ThreadStart(()=>
                    {
                        bool playing;
                        lock(_Sync) { playing = _Playing; }

                        while (playing)
                        {
                            Thread.Sleep(5000);

                            SetQuality(_LastIP, Settings.QUALITY);

                            RestartIfNeeded();

                            SyncAudio(false);

                            lock(_Sync) { playing = _Playing; }
                        }
                    }));

                    _LastSync = DateTime.Now;

                    Log.WriteLine("Streaming from {0} at {1}", _LastIP, _LastSync);

                    _SyncThread.Start();
                }
                return true;
            }