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); } }
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); } }