diff -r 5a044f6358c2 -r 4baee4f15982 browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp --- a/browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp Thu Jul 15 18:42:04 2010 +0300 +++ b/browserplugins/browseraudiovideoplugin/src/BavpPlugin.cpp Thu Aug 19 09:57:56 2010 +0300 @@ -46,7 +46,8 @@ iMimeType( NULL ), iPauseState ( EFalse ), iIsForeGround ( ETrue ), - iPauseInBackground (EFalse) + iPauseInBackground (EFalse), + iPlayFromFile(EFalse) { } @@ -188,6 +189,7 @@ // ----------------------------------------------------------------------------- void CBavpPlugin::OpenAndPlayFileL( const TDesC& aFilename, const HBufC* originalFileName ) { + iPlayFromFile = ETrue; Log( EFalse, _L("CBavpPlugin::OpenAndPlayFileL"), (TInt)this ); if ( !iBavpView ) @@ -261,6 +263,7 @@ // ----------------------------------------------------------------------------- void CBavpPlugin::OpenAndPlayUrlL( const TDesC& aUrl ) { + iPlayFromFile = EFalse; Log( EFalse, _L("CBavpPlugin::OpenAndPlayUrlL"), (TInt)this ); if ( iBavpController ) @@ -415,6 +418,19 @@ iBavpController->PlayL(); } break; + case EAccesPointChanged : + if (iBavpController && !iPlayFromFile) { + bool state = (iBavpController->State() == EBavpPaused || + iBavpController->State() == EBavpPlaying || + iBavpController->State() == EBavpBuffering || + iBavpController->State() == EBavpFastForwarding || + iBavpController->State() == EBavpRewinding ); + iBavpController->Stop(); + if (state) + iBavpController->PlayL(); + } + break; + default: // Not implemented break;