コード例 #1
0
ファイル: PlayPage.xaml.cs プロジェクト: uvbs/MyProjects
        private void xPPvodWP7MediaElement_MediaEnded(object sender, PPTVWP7MediaPlayer.PPLiveRoutedEventArgs e)
        {
            _isPlayEnd = true;
            _isOver = true;
            if (_playLocalFile)
            {
                //
                LocalPlayFactory localFactory = new LocalPlayFactory();
                localFactory.UpdateRecord(_localFileId, xPPvodWP7MediaElement.Position.Seconds);
                if (NavigationService.CanGoBack)
                    NavigationService.GoBack();
                return;
            }
            SaveToDB(ProgramIndex);
            xPPvodWP7MediaElement.Stop();
            _playBufferCount = _allBufferCount - _dragBufferCount;
            PPTVData.Factory.DACPlayInfo playInfo = new PPTVData.Factory.DACPlayInfo();
            playInfo.castType = 3;
            playInfo.stopReason = 0;
            playInfo.isPlaySucceeded = _isPlaySucceeded ? 1 : 0;
            playInfo.connType = _connType;
            playInfo.dragCount = _dragCount;
            playInfo.playBufferCount = _playBufferCount;
            playInfo.dragBufferTime = _dragBufferTime;
            playInfo.allBufferCount = _allBufferCount;
            playInfo.bufferTime = _bufferTime;
            playInfo.prepareTime = _prepareTime;
            playInfo.programSource = _programSource;
            playInfo.averageDownSpeed = _averageDownSpeed;
            playInfo.playTime = _playTime;

            playInfo.mp4Name = Utils.Utils.UrlDecode(_currentPlayBitrate != null ? _currentPlayBitrate.Rid : "");
            PPTVData.Factory.DACFactory.DACPlaying(playInfo, ChannelDetailInfo, Utils.Utils.GetClientVersion());

            _isAutoStop = true;
            PlayNextProgram();
        }
コード例 #2
0
ファイル: PlayPage.xaml.cs プロジェクト: uvbs/MyProjects
        protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
        {
            _timer.Stop();
            _timerOfControlBar.Stop();
            if (_playLocalFile)
            {
                xPPvodWP7MediaElement.Pause();
                if (xPPvodWP7MediaElement.CurrentState == MediaElementState.Paused || xPPvodWP7MediaElement.CurrentState == MediaElementState.Playing)
                {// 更新当前的播放位置                  

                    LocalPlayFactory localFacotry = new LocalPlayFactory();
                    localFacotry.UpdateRecord(_localFileId, (long)xPPvodWP7MediaElement.Position.TotalSeconds);
                }
                return;
            }
            LogManager.Ins.Log("开始退出执行DAC");
            if (xPPvodWP7MediaElement.CurrentState != MediaElementState.Stopped)
            {
                _playTime = (DateTime.Now - _beginPlaying).TotalSeconds;

                _playBufferCount = _allBufferCount - _dragBufferCount;
                PPTVData.Factory.DACPlayInfo playInfo = new PPTVData.Factory.DACPlayInfo();
                playInfo.castType = 3;
                playInfo.stopReason = 1;
                playInfo.isPlaySucceeded = _isPlaySucceeded ? 1 : 0;
                LogManager.Ins.Log("查Wifi开始");
                playInfo.connType = _connType;
                LogManager.Ins.Log("查Wifi结束");
                playInfo.dragCount = _dragCount;
                playInfo.playBufferCount = _playBufferCount;
                playInfo.dragBufferTime = _dragBufferTime;
                playInfo.allBufferCount = _allBufferCount;
                playInfo.bufferTime = _bufferTime;
                playInfo.prepareTime = _prepareTime;
                playInfo.programSource = _programSource;
                playInfo.averageDownSpeed = _averageDownSpeed;
                playInfo.playTime = _playTime;
                
                playInfo.mp4Name = Utils.Utils.UrlDecode(_currentPlayBitrate != null ?
                    _currentPlayBitrate.Rid : "");


                if (ChannelDetailInfo != null && !_isAutoStop)
                    PPTVData.Factory.DACFactory.DACPlaying(playInfo, ChannelDetailInfo, Utils.Utils.GetClientVersion());
                _isAutoStop = false;
            }
            LogManager.Ins.Log("DAC完成");
            SetInfo(true);
            LogManager.Ins.Log("开始保存到数据库");
            if (xPPvodWP7MediaElement.CurrentState == MediaElementState.Paused || xPPvodWP7MediaElement.CurrentState == MediaElementState.Playing)
                SaveToDB(ProgramIndex);
            LogManager.Ins.Log("数据库保存完成");
            //if (_isBackPress)
            //    xPPvodWP7MediaElement.OriSource = "";

            ChannelDetailInfo = null;
            _currentPlayBitrate = null;
            LogManager.Ins.Log("清空Source");
        }