Esempio n. 1
0
        void IVXProtocol_EventPlayPos(int vodHandle, E_VDA_PLAY_STATUS playState, uint playPercent, uint curPlayTime, uint userData)
        {
            if (m_DTVideoHandleList.ContainsKey(vodHandle))
            {
                //BOCOM.IVX.Model.VideoProgressInfo info = new Model.VideoProgressInfo();

                VideoStatusInfo info = m_DTVideoStatusList[vodHandle];
                info.CurrPlayTime      = curPlayTime;
                info.OriginalPlayState = playState;
                info.PlayPercent       = playPercent;
                info.UserData          = userData;

                if (playState == E_VDA_PLAY_STATUS.E_PLAY_STATUS_FAILED)
                {
                    info.PlayStatePriv = info.PlayState;
                    info.PlayState     = VideoStatusType.E_NULL;
                    Framework.Container.Instance.EvtAggregator.GetEvent <PlayFailedEvent>().Publish(info);
                    return;
                }
                else if (playState == E_VDA_PLAY_STATUS.E_PLAY_STATUS_FINISH)
                {
                    info.PlayStatePriv = info.PlayState;
                    info.PlayState     = VideoStatusType.E_STOP;
                }
                //else if (playState == E_VDA_PLAY_STATUS.E_PLAY_STATUS_STARTPLAY_READY)
                //{
                //    info.PlayStatePriv = info.PlayState;
                //    info.PlayState = VideoStatusType.E_NORMAL;
                //    uint val = 0;
                //    Framework.Container.Instance.IVXProtocol.PlayBackControl(vodHandle, E_VDA_PLAYCTRL_TYPE.E_PLAYCTRL_GETTIME_RANGE, 0, out val);
                //    info.TotlePlayTime = val;
                //    Framework.Container.Instance.EvtAggregator.GetEvent<PlayReadyEvent>().Publish(info);
                //    return;

                //}

                if (info.TotlePlayTime != 0)
                {
                    uint endpos = 1000 * info.EndPlayTime / info.TotlePlayTime;

                    if (endpos > 0 && playPercent > endpos)
                    {
                        uint outval = 0;
                        Framework.Container.Instance.IVXProtocol.PlayBackControl(vodHandle, E_VDA_PLAYCTRL_TYPE.E_PLAYCTRL_STOP, 0, out outval);
                        info.PlayStatePriv = info.PlayState;
                        info.PlayState     = VideoStatusType.E_STOP;
                    }
                }

                Framework.Container.Instance.EvtAggregator.GetEvent <PlayPosChangedEvent>().Publish(info);
            }
        }
Esempio n. 2
0
        void IVXProtocol_EventBriefVideoPlayProgress(int vodHandle, E_VDA_PLAY_STATUS playState, uint playPercent, uint curPlayTime, uint result, uint userData)
        {
            if (m_DTVideoHandleList.ContainsKey(vodHandle))
            {
                VideoStatusInfo info = m_DTVideoStatusList[vodHandle];
                info.CurrPlayTime      = curPlayTime;
                info.OriginalPlayState = playState;
                info.PlayPercent       = playPercent;
                info.UserData          = userData;
                info.ErrorCode         = result;

                if (playState == E_VDA_PLAY_STATUS.E_PLAY_STATUS_FAILED)
                {
                    info.PlayStatePriv = info.PlayState;
                    info.PlayState     = VideoStatusType.E_NULL;
                    Framework.Container.Instance.EvtAggregator.GetEvent <PlayFailedEvent>().Publish(info);
                    return;
                }
                else if (playState == E_VDA_PLAY_STATUS.E_PLAY_STATUS_SYNTH_ERROR)
                {
                    info.PlayStatePriv = info.PlayState;
                    info.PlayState     = VideoStatusType.E_NULL;
                    Framework.Container.Instance.EvtAggregator.GetEvent <PlaySynthFailedEvent>().Publish(info);
                    return;
                }
                else if (playState == E_VDA_PLAY_STATUS.E_PLAY_STATUS_FINISH)
                {
                    info.PlayStatePriv = info.PlayState;
                    info.PlayState     = VideoStatusType.E_STOP;
                }
                else if (playState == E_VDA_PLAY_STATUS.E_PLAY_STATUS_STARTPLAY_READY)
                {
                    info.PlayStatePriv = info.PlayState;
                    info.PlayState     = VideoStatusType.E_NORMAL;
                    uint val = 0;
                    Framework.Container.Instance.IVXProtocol.BriefPlayControl(vodHandle, E_VDA_BRIEF_PLAYCTRL_TYPE.E_BRIEF_PLAYCTRL_GETTIME_RANGE, 0, out val);
                    info.TotlePlayTime = val;
                    Framework.Container.Instance.EvtAggregator.GetEvent <PlayReadyEvent>().Publish(info);
                    return;
                }
                Framework.Container.Instance.EvtAggregator.GetEvent <PlayPosChangedEvent>().Publish(info);
            }
        }