, __pCurrentPlayContentPath(null)
, __playerSeekCompleted(true)
, __playerLastSeekCompleted(false)
- , __playAfterSeek(true)
+ , __stateAfterSeek(PLAYER_STATE_ERROR)
, __mediaWidth(0)
, __mediaHeight(0)
, __currentMediaIndex(INIT_CONTENT_INDEX)
if (__playerLastSeekCompleted == true)
{
- if (__playAfterSeek == true)
+ if (__stateAfterSeek == PLAYER_STATE_PLAYING)
{
result r = __pPlayer->Play();
TryReturnVoid(r == E_SUCCESS, "__pPlayer->Play():%s", GetErrorMessage(r));
+ __stateAfterSeek = PLAYER_STATE_ERROR;
CallOnPlayStateChanged(__pPlayer->GetState());
__playerLastSeekCompleted = false;
}
+ if (__stateAfterSeek == PLAYER_STATE_PAUSED)
+ {
+ PausePlay();
+ __stateAfterSeek = PLAYER_STATE_ERROR;
+ }
+
__pVideoPlayerEventListener->OnPlaySeekCompleted(r);
}
r = __pPlayer->Play();
TryCatch(r == E_SUCCESS, , "__pPlayer->Play() failed:%s", GetErrorMessage(r));
- r = __pTimer->Start(PROGRESS_TIMER_DURATION);
- TryCatch(r == E_SUCCESS, , "__pTimer->Start() failed:%s", GetErrorMessage(r));
+ __pTimer->Start(PROGRESS_TIMER_DURATION);
}
break;
PlayerState playState = GetState();
AppLogDebug("PausePlay : %d", playState);
- if (playState == PLAYER_STATE_PLAYING)
+ if (__playerSeekCompleted == true)
{
- r = __pPlayer->Pause();
- TryCatch(r == E_SUCCESS, , "__pPlayer->Pause() failed:%s", GetErrorMessage(r));
+ if (playState == PLAYER_STATE_PLAYING)
+ {
+ r = __pPlayer->Pause();
+ TryCatch(r == E_SUCCESS, , "__pPlayer->Pause() failed:%s", GetErrorMessage(r));
+ }
+ else
+ {
+ AppLogDebug("Invalid state of player");
+ }
}
else
{
- AppLogDebug("Invalid state of player");
+ __stateAfterSeek = PLAYER_STATE_PAUSED;
}
CallOnPlayStateChanged(__pPlayer->GetState());
AppLogDebug("Forward");
- if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
+ PlayerState playState = __pPlayer->GetState();
+
+ if (playState != PLAYER_STATE_ENDOFCLIP)
{
msTime = __pPlayer->GetPosition();
CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
__playerSeekCompleted = false;
+ __stateAfterSeek = playState;
}
}
else
CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
__playerSeekCompleted = false;
+ __stateAfterSeek = playState;
}
}
}
AppLogDebug("Rewind");
- if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
+ PlayerState playState = __pPlayer->GetState();
+
+ if (playState != PLAYER_STATE_ENDOFCLIP)
{
msTime = __pPlayer->GetPosition();
CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
__playerSeekCompleted = false;
+ __stateAfterSeek = playState;
}
}
else
CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
__playerSeekCompleted = false;
+ __stateAfterSeek = playState;
}
}
}
if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
{
PausePlay();
- __playAfterSeek = playAfterSeek;
+ if(playAfterSeek)
+ {
+ __stateAfterSeek = PLAYER_STATE_PLAYING;
+ }
+ else
+ {
+ __stateAfterSeek = PLAYER_STATE_PAUSED;
+ }
+
__pFastForwardTimer->Start(LONGKEY_TIMER_DURATION);
}
}
if (__pPlayer->GetState() != PLAYER_STATE_ENDOFCLIP)
{
PausePlay();
- __playAfterSeek = playAfterSeek;
+ if(playAfterSeek)
+ {
+ __stateAfterSeek = PLAYER_STATE_PLAYING;
+ }
+ else
+ {
+ __stateAfterSeek = PLAYER_STATE_PAUSED;
+ }
+
__pFastRewindTimer->Start(LONGKEY_TIMER_DURATION);
}
}
if (__playerSeekCompleted == true)
{
- if (__playAfterSeek == true)
+ if (__stateAfterSeek == PLAYER_STATE_PLAYING)
{
result r = __pPlayer->Play();
TryReturnVoid(r == E_SUCCESS, "__pPlayer->Play() failed:%s", GetErrorMessage(r));